python requests库+tkinter库+pyinstaller库实现联网查单词应用(二)

我们这次用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()


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值