我们这次用python自带的tkinter库来给软件加个用户界面。
Python GUI编程(Tkinter)菜鸟教程
面向过程编程代码
from tkinter import Tk, Entry, Button, StringVar, Label
from requests import post
# 用from import方法从库中引入所需模块,减少后续打包大小
def main():
win = Tk()
# 窗口模块
win.title("英语单词查询")
win.geometry("500x250")
# 定义窗口属性(窗口名称, 窗口大小)
entry = Entry()
# 输入框模块
entry.pack()
# 初始化输入框
word_str = StringVar()
# 字符串变量模块
def get(text_):
post_url = "https://fanyi.baidu.com/sug"
data = {
"kw": text_
}
head = {
"User-Agent": "Mozilla/5.0"
}
x_ = post(post_url, data, headers=head).json()
return x_
def on():
text = entry.get()
# 获取聊天框里字符串的值并赋值给text
x = get(text)
# 调用get函数
li = 0
word = ""
for i in range(len(x["data"])):
word += f"单词:{x['data'][li]['k']}\n{x['data'][li]['v']}\n"
li += 1
word_str.set(word)
# 设置字符串变量的值为word
Button(win, text="查询", command=on).pack()
# 初始化按钮,如果按下则执行on函数
Label(win, textvariable=word_str).pack()
# 初始化显示框,赋值字符串变量
win.mainloop()
# 进入事件循环
main()
面向对象编程代码
from tkinter import Tk, Entry, Button, StringVar, Label
from requests import post
# 用from import方法从库中引入所需模块,减少后续打包大小
class App:
def __init__(self):
"""定义App类,并实例化引入模块"""
self.win = Tk()
# 窗口模块
self.entry = Entry()
# 输入框模块
self.word_str = StringVar()
# 字符串变量模块
def gui_tkinter(self):
self.win.title("英语单词查询")
self.win.geometry("500x250")
# 定义窗口属性(窗口名称, 窗口大小)
self.entry.pack()
# 初始化输入框
Button(self.win, text="查询", command=lambda: App.get_word(self)).pack()
# 初始化按钮,如果按下则执行__on方法
Label(self.win, textvariable=self.word_str).pack()
# 初始化显示框,赋值字符串变量
self.win.mainloop()
# 进入事件循环
def get_word(self):
text = self.entry.get()
# 获取聊天框里字符串的值并赋值给text
post_url = "https://fanyi.baidu.com/sug"
head = {
"User-Agent": "Mozilla/5.0"
}
data = {
"kw": text
}
x = post(post_url, data, headers=head).json()
li = 0
word = ""
for i in range(len(x["data"])):
word += f"单词:{x['data'][li]['k']}\n{x['data'][li]['v']}\n"
li += 1
self.word_str.set(word)
# 设置字符串变量的值为word
if __name__ == '__main__':
"""实例化App类,并调用打开用户界面"""
app = App()
app.gui_tkinter()