代码如下:
from tkinter import *
import requests
import json
import pyttsx3
def translate():
content = entry1.get().strip()#去除字符串开头或者结尾的空格
#entry是Tkinter用来接收字符串等输入的控件
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {
'i':content,#接收用户输入
'doctype':'json'#文档类型
}
headers = {#对应User-Agent,用户代理,用来模仿浏览器访问
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0'
}
response = requests.post(url,data=data,headers=headers)#使用requests发送请求,访问指定网站
ret = response.content.decode()
result = json.loads(ret)
result = result['translateResult'][0][0]['tgt']
res.set(result)
engine = pyttsx3.init()#初始化
engine.say(result)
engine.runAndWait()#python的语言播报功能
root = Tk()
root.title('智能翻译系统')
root.geometry('300x100+500+200')
resizable(False,False)
input_data = Label(root,text='原文为:',font=('宋体',15),fg='green')#标签控件,可以显示文本和位图
input_data.grid()#三大几何管理方法之一——网格
entry1 = Entry(root)#Entry用于输入控件,显示简单的文本内容
entry1.grid(row=0,column=1)
output_data = Label(root,text='译文为:',font=('宋体',15),fg='green')
output_data.grid(row=1,column=0)
res = StringVar()
entry2 = Entry(root,textvariable=res)
entry2.grid(row=1,column=1)
button = Button(root,text='翻译',width=10,command=translate).grid(row=2,column=0)
button2 = Button(root,text='退出',width=10,command=root.quit).grid(row=2,column=1)
root.mainloop()