from tkinter import *
import time
import hashlib
import string
LOG_LINE_NUM = 0
def set_init_window():
init_window.title('GUI小工具V1.0')
init_window.geometry('290x160+10+10')
init_window['bg'] = 'pink'
init_window.attributes('-alpha',8.8)
def set_window_graphy():
global init_data_Text
global result_data_label
global log_label
global result_data_Text
global log_data_Text
init_data_label = Label(init_window,text='待处理数据')
init_data_label.grid(row=0,column=1)
result_data_label = Label(init_window,text='输出结果')
result_data_label.grid(row=0,column=20)
log_label = Label(init_window,text='日志')
log_label.grid(row=12,column=1)
init_data_Text = Text(init_window,width=67,height=35)
init_data_Text.grid(row=1,column=1,rowspan=10,columnspan=10)
result_data_Text = Text(init_window,width=70,height=49)
result_data_Text.grid(row=1,column=20,rowspan=15,columnspan=10)
log_data_Text = Text(init_window,width=66, height=12) # 日志框
log_data_Text.grid(row=13, column=1,rowspan=10,columnspan=11)
md5_button = Button(init_window, text="字符串转MD5", bg="lightblue", width=15,command=str_trans_to_md5) # 调用内部方法 加()为直接调用
md5_button.grid(row=1, column=12)
sh256_button = Button(init_window, text="字符串转SHA256", bg="lightblue", width=15,command=str_trans_to_sha256) # 调用内部方法 加()为直接调用
sh256_button.grid(row=2, column=12)
lowercase_button = Button(init_window, text="字符串全部转小写", bg="lightblue", width=15,command=str_trans_to_lowercase) # 调用内部方法 加()为直接调用
lowercase_button.grid(row=3, column=12)
uppercase_button = Button(init_window, text="字符串全部转大写", bg="lightblue", width=15,command=str_trans_to_uppercase) # 调用内部方法 加()为直接调用
uppercase_button.grid(row=4, column=12)
reversecase_button = Button(init_window, text="字符串全部翻转", bg="lightblue", width=15,command=str_trans_to_reversecase) # 调用内部方法 加()为直接调用
reversecase_button.grid(row=5, column=12)
def str_trans_to_md5():
src = init_data_Text.get(1.0,END).strip().replace("\n","").encode() #md5加密字符串必须是bytes类型,所以需要提前encode
if src:
try:
myMd5 = hashlib.md5()
myMd5.update(src)
myMd5_Digest = myMd5.hexdigest()
#print(myMd5_Digest)
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,myMd5_Digest)
write_log_to_Text("INFO:str_trans_to_md5 success")
except:
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,'INFO:str_trans_to_md5 failed')
write_log_to_Text('INFO:str_trans_to_md5 failed')
else:
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,'INFO:no valid input')
write_log_to_Text('INFO:no valid input')
def str_trans_to_sha256():
src = init_data_Text.get(1.0,END).strip().replace("\n","").encode() #sha256加密字符串必须是bytes类型,所以需要提前encode
if src:
try:
mySha256 = hashlib.sha256()
mySha256.update(src)
mySha256_Digest = mySha256.hexdigest()
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,mySha256_Digest)
write_log_to_Text("INFO:str_trans_to_sha256 success")
except:
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,'ERROR:str_trans_to_sha256 failed')
write_log_to_Text('ERROR:str_trans_to_sha256 failed')
else:
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,'ERROR:no valid input')
write_log_to_Text('ERROR:no valid input')
def str_trans_to_lowercase():
src = init_data_Text.get(1.0,END).strip()
if src:
try:
lower_str = ''
for i in src:
if i.isalpha():
lower_str+=i.lower()
else:
lower_str+=i
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,lower_str)
write_log_to_Text("INFO:str_trans_to_lowercase success")
except:
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,'ERROR:str_trans_to_lowercase failed')
write_log_to_Text('ERROR:str_trans_to_lowercase failed')
else:
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,'ERROR:no valid input')
write_log_to_Text('ERROR:no valid input')
def str_trans_to_uppercase():
src = init_data_Text.get(1.0,END).strip()
if src:
try:
upper_str = ''
for i in src:
if i.isalpha():
upper_str+=i.upper()
else:
upper_str+=i
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,upper_str)
write_log_to_Text("INFO:str_trans_to_uppercase success")
except:
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,'ERROR:str_trans_to_uppercase failed')
write_log_to_Text('ERROR:str_trans_to_uppercase failed')
else:
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,'ERROR:no valid input')
write_log_to_Text('ERROR:no valid input')
def str_trans_to_reversecase():
src = init_data_Text.get(1.0,END).strip()
if src:
try:
start = end = 0
reversecase = ''
for i in range(len(src)):
if src[i] in string.punctuation:
end = i
reversecase += ' '.join(src[start:end].split()[::-1])
reversecase += src[i]
start = end+1
if end != len(src)-1:
end = len(src)-1
reversecase += ' '.join(src[start:end].split()[::-1])
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,reversecase)
write_log_to_Text("INFO:str_trans_to_reversecase success")
except:
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,'ERROR:str_trans_to_reversecase failed')
write_log_to_Text('ERROR:str_trans_to_reversecase failed')
else:
result_data_Text.delete(1.0,END)
result_data_Text.insert(1.0,'ERROR:no valid input')
write_log_to_Text('ERROR:no valid input')
def get_current_time():
current_time = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
return current_time
def write_log_to_Text(logmsg):
global LOG_LINE_NUM
current_time = get_current_time()
log_msg = str(current_time)+' ' +str(logmsg)+'\n'
if LOG_LINE_NUM <=7:
log_data_Text.insert(END,log_msg)
LOG_LINE_NUM = LOG_LINE_NUM + 1
else:
log_data_Text.delete(1.0,2.0)
log_data_Text.insert(END,log_msg)
log_data_Text.focus_force()
if __name__ == '__main__':
init_window = Tk()
set_init_window()
set_window_graphy()
init_window.mainloop()
tkinter之GUI小工具
最新推荐文章于 2023-01-30 16:57:11 发布