马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
功能:翻译(爬取有道词典的)
特色:
1、窗口小,不占位置
2、窗口保持置顶,随时点击使用
3、窗口打开位置在浏览器的网址栏,不会影响其他操作
输入要翻译的内容点回车就可以在后面看到结果了
见附件:translate.pyw
代码:import urllib.request
import urllib.parse
import json
from tkinter import*
root = Tk()
root.wm_attributes('-topmost',1)
root.geometry('+1300+40')
root.minsize(300,10)
result = ('<---请输入需要翻译的内容')
#输出翻译
get = Label(root,text=result)
get.pack(side=RIGHT)
def translate(event=None):
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom="
head = {}
head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'
data = {}
data['i'] = post_text.get()
data['from'] = 'AUTO'
data['to'] = 'AUTO'
data['smartresult'] = 'dict'
data['client'] = 'fanyideskweb'
data['salt'] = '1504859416218'
data['sign'] = '54d324206580658df5cf8839219bd7c1'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action'] = 'FY_BY_CLICKBUTTION'
data['typoResult'] = 'true'
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url,data)
html = response.read().decode('utf-8')
target = json.loads(html)
result = target['translateResult'][0][0]['tgt']
#print(result)
get['text'] = result
#输入文字
post_text = StringVar()
post = Entry(root,validate='key',textvariable=post_text)
post.focus_set()
post.pack(side=LEFT,padx=5,pady=5)
post.bind('<Return>',translate)
root.mainloop()
求助攻:
1、我想改成输入完后自动出结果,就是不用按回车,所以把执行命令方式由<Return>改为<KeyRelease>,但是在Entry为空的时候输入会报错,虽然可以实现我想要的结果,但是多次输入后程序就会卡死。
试过修改这个bug,加入一个判断语句,如果Entry不为空再执行KeyRelease后的命令,但是无效,也没找到为什么无效,所以希望大家帮帮忙。
见附件:AnyKey.pyw
2、让界面不要显示任何按钮,如图:
附件:
tr.zip
(1.91 KB, 下载次数: 5)
|