Python - 通過Python GUI 寫界面
1、代碼
from tkinter import *
import hashlib
import time
if __name__ == '__main__':
LOG_LINE_NUM = 0
class gui():
def __init__(self, init_window_name):
self.init_window_name = init_window_name
self.str_trans_to_md5_button = None
self.log_text = Text(self.init_window_name, width=66, height=9)
self.log_label = Label(self.init_window_name, text="日誌")
self.out_text = Text(self.init_window_name, width=70, height=49)
self.out_label = Label(self.init_window_name, text="輸出")
self.in_text = Text(self.init_window_name, width=67, height=35)
self.in_label = Label(self.init_window_name, text="輸入")
def init_window(self):
self.init_window_name.title("MD5")
self.init_window_name.geometry('1068x681+10+10')
self.in_label.grid()
self.in_text.grid(row=1, column=0, rowspan=5, columnspan=5)
self.out_label.grid(row=0, column=12)
self.out_text.grid(row=1, column=12, rowspan=15, columnspan=10)
self.log_label.grid(row=12, column=0)
self.log_text.grid(row=13, column=0, columnspan=10)
self.str_trans_to_md5_button = Button(self.init_window_name, text="MD5", bg="lightblue", width=10,
command=self.str_trans_to_md5)
self.str_trans_to_md5_button.grid(row=1, column=11)
def str_trans_to_md5(self):
src = self.in_text.get(1.0, END).strip().replace("\n", "").encode()
if src:
try:
md5 = hashlib.md5()
md5.update(src)
digest = md5.hexdigest()
self.out_text.delete(1.0, END)
self.out_text.insert(1.0, digest)
self.write_log_to_text("INFO:成了")
except:
self.out_text.delete(1.0, END)
self.out_text.insert(1.0, "字符串轉MD5失敗")
else:
self.write_log_to_text("ERROR:敗了")
@staticmethod
def current_time():
current_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
return current_time
def write_log_to_text(self, logmsg):
global LOG_LINE_NUM
current_time = self.current_time()
logmsg_in = str(current_time) + " " + str(logmsg) + "\n"
if LOG_LINE_NUM <= 7:
self.log_text.insert(END, logmsg_in)
LOG_LINE_NUM = LOG_LINE_NUM + 1
else:
self.log_text.delete(1.0, 2.0)
self.log_text.insert(END, logmsg_in)
def gui_start():
main = Tk()
that = gui(main)
that.init_window()
main.mainloop()
gui_start()
2、界面