|
发表于 2021-1-5 10:49:22
|
显示全部楼层
本楼为最佳答案
 - from tkinter import *
- import requests
- from lxml import etree
- def post_word(word):
- url = 'http://dict.youdao.com/search?q=%s&keyfrom=new-fanyi.smartResult' % word
- headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66'}
- res = requests.get(url,headers=headers)
- tree = etree.HTML(res.text)
- result = tree.xpath('//div[@class="trans-container"]/ul/li/text()')
- return result[0:4]
- def creat_windows():
- root = Tk()
- root.title('单词查询器.by1784013953')
- v1 = StringVar()
- Label(root,text='输入单词').grid(row=0,column=0)
- Label(root,text='翻译结果').grid(row=1,column=0)
- Entry(root,textvariable=v1).grid(row=0,column=1)
- text = Text(root,width=40,height=5)
- text.grid(row=1,column=1, sticky=S + W + E + N)#加了个定位
- def show():
- word = v1.get()
- for each in (post_word(word)):
- text.insert(END,each)
- text.insert(END,'\n')
- def brea():
- root.destroy()
- Button(root,text='翻译',width=10,command=show).grid(row=2,column=0,sticky=W,ipadx=10,ipady=5)
- Button(root,text='退出',width=10,command=brea).grid(row=2,column=3,sticky=E,ipadx=10,ipady=5)
- #这以下三行捋一捋关系,关键还是在定位,你那样是滚动条的位置覆盖了文本框位置
-
- sb = Scrollbar(command=text.yview)
- text.config(yscrollcommand = sb.set)
- sb.grid(row=1,column=2, sticky=S + W + E + N)#加了个定位
- #给个建议最好还是不要def下面再def,class就好多了。
- mainloop()
- if __name__ == '__main__':
- creat_windows()
复制代码 |
|