079. 编写一个函数,实现简单的图形用户界面

在 Python 中,可以使用 tkinter 库来创建简单的图形用户界面(GUI)。tkinter 是 Python 的标准 GUI 库,适合初学者快速上手。

示例代码

以下代码实现了一个简单的 GUI 应用程序,包含一个按钮和一个标签。点击按钮时,标签的内容会更新。

import tkinter as tk

# 定义一个简单的 GUI 应用程序
class SimpleApp:
    def __init__(self, root):
        self.root = root
        self.root.title("简单 GUI 应用程序")

        # 创建一个标签
        self.label = tk.Label(root, text="欢迎使用简单 GUI 应用程序!", font=("Arial", 14))
        self.label.pack(pady=20)

        # 创建一个按钮
        self.button = tk.Button(root, text="点击我", command=self.update_label, font=("Arial", 12))
        self.button.pack(pady=10)

    def update_label(self):
        """更新标签的内容"""
        self.label.config(text="按钮被点击了!")

# 主函数
def main():
    # 创建主窗口
    root = tk.Tk()
    app = SimpleApp(root)
    root.mainloop()

# 示例用法
if __name__ == "__main__":
    main()

代码说明

创建主窗口

  • 使用 tk.Tk() 创建主窗口。

  • 使用 root.title() 设置窗口标题。

创建标签

  • 使用 tk.Label 创建一个标签,显示欢迎信息。

  • 使用 label.pack() 将标签添加到窗口中,并设置上下边距。

创建按钮

  • 使用 tk.Button 创建一个按钮,设置按钮的文本和点击事件的回调函数。

  • 使用 button.pack() 将按钮添加到窗口中,并设置上下边距。

更新标签

  • 定义一个方法 update_label,在按钮点击时调用。

  • 使用 label.config() 更新标签的内容。

主循环:使用 root.mainloop() 启动主循环,使窗口保持打开状态。

示例输出

运行上述代码后,将显示一个窗口,包含一个标签和一个按钮。点击按钮后,标签的内容会更新为“按钮被点击了!”。

扩展功能

  1. 布局管理:使用 grid()place() 方法代替 pack(),以更灵活地控制组件的布局。
  2. 输入框:使用 tk.Entrytk.Text 创建输入框,允许用户输入文本。
  3. 菜单栏:使用 tk.Menu 创建菜单栏,添加菜单项和功能。
  4. 对话框:使用 tk.messageboxtk.filedialog 创建对话框,例如消息框、文件选择对话框等。
  5. 事件绑定:使用 widget.bind() 绑定事件(如鼠标点击、键盘输入)到特定的回调函数。

示例:添加输入框和菜单栏

import tkinter as tk
from tkinter import messagebox

class SimpleApp:
    def __init__(self, root):
        self.root = root
        self.root.title("简单 GUI 应用程序")

        # 创建菜单栏
        self.menu_bar = tk.Menu(root)
        root.config(menu=self.menu_bar)

        # 添加菜单项
        self.file_menu = tk.Menu(self.menu_bar, tearoff=0)
        self.file_menu.add_command(label="退出", command=root.quit)
        self.menu_bar.add_cascade(label="文件", menu=self.file_menu)

        # 创建一个标签
        self.label = tk.Label(root, text="欢迎使用简单 GUI 应用程序!", font=("Arial", 14))
        self.label.pack(pady=20)

        # 创建一个输入框
        self.entry = tk.Entry(root, font=("Arial", 12))
        self.entry.pack(pady=10)

        # 创建一个按钮
        self.button = tk.Button(root, text="点击我", command=self.update_label, font=("Arial", 12))
        self.button.pack(pady=10)

    def update_label(self):
        """更新标签的内容"""
        user_input = self.entry.get()
        self.label.config(text=f"你输入了:{user_input}")

def main():
    root = tk.Tk()
    app = SimpleApp(root)
    root.mainloop()

if __name__ == "__main__":
    main()

示例输出

运行上述代码后,将显示一个窗口,包含一个标签、一个输入框和一个按钮。点击按钮后,标签的内容会更新为用户在输入框中输入的内容。

视频讲解

BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)