前言
测试有时候也需要开发一些工具方便使用,我个人是比较喜欢用django去做,再挂载服务器,可以随时用。但偶尔也会有制作本地运行的小工具需求。
一、tkinter是什么?
tkinter是python自带的一个GUI库,其实跨平台多语言支持的QT可能更值得学习下。
二、制作一个hash加密工具
1.代码
代码如下:
mport hashlib
def string_to_hash():
# 获取选中的
algorithm_type = algorithm_type_list_componet.get("active")
print(algorithm_type)
# text只能重1.0开始 0不行,1好像也不行
hash_string = input_text.get(1.0, END).strip().replace("\n","").encode()
print(hash_string)
algorithm_type_dict = {
"MD5": hashlib.md5(),
"SHA1": hashlib.sha1(),
"SHA224": hashlib.sha224(),
"SHA256": hashlib.sha256(),
"SHA384": hashlib.sha384(),
"SHA512": hashlib.sha512(),
}
m = algorithm_type_dict[algorithm_type]
m.update(hash_string)
# print()
ouput_text.delete(1.0, END)
ouput_text.insert(1.0, f"{algorithm_type}:{m.hexdigest()}")
# return m.hexdigest
# Python3.x 导入方法
from tkinter import *
# 创建主窗口对象
root = Tk()
root.title("hash加密工具")
root.geometry('800x500+10+10')
# 创建frame
frame_1 = Frame(root)
frame_2 = Frame(root)
frame_3 = Frame(root)
frame_1.grid(row=0, column=0)
frame_2.grid(row=0, column=1)
frame_3.grid(row=0, column=2)
# 创建标签
type_label = Label(frame_1, text="算法选择")
type_label.grid(row=0, column=0)
input_label = Label(frame_2, text="需要hash加密的字符串")
input_label.grid(row=0, column=0)
result_label = Label(frame_2, text="结果输出")
result_label.grid(row=1, column=0)
# 创建列表组件
algorithm_type_list = ["SHA1", "SHA224", "SHA256", "SHA384", "SHA512", "MD5"]
algorithm_type_list_componet = Listbox(frame_1)
# 列表部件插入数据
for item in algorithm_type_list:
algorithm_type_list_componet.insert(0, item)
algorithm_type_list_componet.grid(row=1, column=0)
# 创建数据录入框
input_text = Text(frame_2, width=35, height=10)
input_text.grid(row=0, column=1)
# 创建结果显示框
ouput_text = Text(frame_2, width=35, height=10)
ouput_text.grid(row=1, column=1)
# 创建按钮
str_trans_to_hash_button = Button(frame_3, text="hash加密", bg="lightblue", width=10, command=string_to_hash)
str_trans_to_hash_button.grid(row=0, column=0)
# 循环
root.mainloop()
总结
鼓励自己积极发文中,文章也没啥用,只有个范例可以供人参考下。急用做小工具倒是可以做做,正式点的还是试试QT。GUI开发最大的难点就是布局,怎么布都难受,特别是习惯了现在的web前端的。
|