python用tkinter實現一個gui的翻譯工具
#!/usr/bin/env python# -*- coding: utf-8 -*-from tkinter import *import hashlibimport timeimport jsonimport requestsimport randomLOG_LINE_NUM = 0class MY_GUI(): def __init__(self,init_window_name): self.init_window_name = init_window_name self.headers = { ’User-Agent’: ’自己的User-Agent’, ’Referer’: ’http://fanyi.youdao.com/’, ’Cookie’: ’自己的Cookie’ } self.data = { ’i’: None, ’from’: ’AUTO’, ’to’: ’AUTO’, ’smartresult’: ’dict’, ’client’: ’fanyideskweb’, ’salt’: None, ’sign’: None, ’ts’: None, ’bv’: None, ’doctype’: ’json’, ’version’: ’2.1’, ’keyfrom’: ’fanyi.web’, ’action’: ’FY_BY_REALTlME’ } self.url = ’http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule’ #設置窗口 def set_init_window(self): self.init_window_name.title('翻譯工具_v1.0') #窗口名 #self.init_window_name.geometry(’320x160+10+10’) #290 160為窗口大小,+10 +10 定義窗口彈出時的默認展示位置 self.init_window_name.geometry(’1068x681+10+10’) #self.init_window_name['bg'] = 'pink' #窗口背景色,其他背景色見:blog.csdn.net/chl0000/article/details/7657887 #self.init_window_name.attributes('-alpha',0.9) #虛化,值越小虛化程度越高 #標簽 self.init_data_label = Label(self.init_window_name, text='待處理數據') self.init_data_label.grid(row=0, column=0) self.result_data_label = Label(self.init_window_name, text='輸出結果') self.result_data_label.grid(row=0, column=12) self.log_label = Label(self.init_window_name, text='日志') self.log_label.grid(row=12, column=0) #文本框 self.init_data_Text = Text(self.init_window_name, width=67, height=35) #原始數據錄入框 self.init_data_Text.grid(row=1, column=0, rowspan=10, columnspan=10) self.result_data_Text = Text(self.init_window_name, width=70, height=49) #處理結果展示 self.result_data_Text.grid(row=1, column=12, rowspan=15, columnspan=10) self.log_data_Text = Text(self.init_window_name, width=66, height=9) # 日志框 self.log_data_Text.grid(row=13, column=0, columnspan=10) #按鈕 self.str_trans_to_md5_button = Button(self.init_window_name, text='轉換', bg='lightblue', width=10,command=self.str_trans) # 調用內部方法 加()為直接調用 self.str_trans_to_md5_button.grid(row=1, column=11) #功能函數 def str_trans(self): word = self.init_data_Text.get(1.0,END).strip().replace('n','') #print('src ='http://m.4tl426be.cn/bcjs/,word) if word: try:ts = str(int(time.time() * 10000))salt = str(int(time.time() * 10000) + random.random() * 10 + 10)sign = ’fanyideskweb’ + word + salt + ’]BjuETDhU)zqSxf-=B#7m’sign = hashlib.md5(sign.encode(’utf-8’)).hexdigest()bv = ’5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36’bv = hashlib.md5(bv.encode(’utf-8’)).hexdigest()self.data[’i’] = wordself.data[’salt’] = saltself.data[’sign’] = signself.data[’ts’] = tsself.data[’bv’] = bvre = requests.post(self.url, headers=self.headers, data=self.data)jieguo = re.json()[’translateResult’][0][0].get(’tgt’)#print(jieguo)#輸出到界面self.result_data_Text.delete(1.0,END)self.result_data_Text.insert(1.0,jieguo)self.write_log_to_Text('INFO:翻譯 success') except:self.result_data_Text.delete(1.0,END)self.result_data_Text.insert(1.0,'翻譯失敗') else: self.write_log_to_Text('ERROR:str_trans failed') #獲取當前時間 def get_current_time(self): 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.get_current_time() logmsg_in = str(current_time) +' ' + str(logmsg) + 'n' #換行 if LOG_LINE_NUM <= 7: self.log_data_Text.insert(END, logmsg_in) LOG_LINE_NUM = LOG_LINE_NUM + 1 else: self.log_data_Text.delete(1.0,2.0) self.log_data_Text.insert(END, logmsg_in)def gui_start(): init_window = Tk() #實例化出一個父窗口 ZMJ_PORTAL = MY_GUI(init_window) # 設置根窗口默認屬性 ZMJ_PORTAL.set_init_window() init_window.mainloop() #父窗口進入事件循環,可以理解為保持窗口運行,否則界面不展示gui_start()
運行效果:
自己可以用pyinstaller 打包成 exe隨時可以用。
省去了再打開網頁去搜 索翻譯網頁,下載翻譯軟件。
以上就是python用tkinter實現一個gui的翻譯工具的詳細內容,更多關于python 翻譯工具的資料請關注好吧啦網其它相關文章!
相關文章:
1. Python獲取抖音關注列表封號賬號的實現代碼2. ajax請求添加自定義header參數代碼3. Python數據分析之pandas函數詳解4. 解決Python 進程池Pool中一些坑5. php測試程序運行速度和頁面執行速度的代碼6. 無線標記語言(WML)基礎之WMLScript 基礎第1/2頁7. 三個不常見的 HTML5 實用新特性簡介8. 使用.net core 自帶DI框架實現延遲加載功能9. php網絡安全中命令執行漏洞的產生及本質探究10. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報錯問題分析
