python 은 tkinter 로 gui 의 번역 도 구 를 실현 합 니 다.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from tkinter import *
import hashlib
import time
import json
import requests
import random
LOG_LINE_NUM = 0
class 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("
","")
#print("src =",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'] = word
self.data['salt'] = salt
self.data['sign'] = sign
self.data['ts'] = ts
self.data['bv'] = bv
re = 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) + "
" #
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 번역 도구 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.