|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)
|
评分
-
查看全部评分
|