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()
启动主循环,使窗口保持打开状态。
示例输出
运行上述代码后,将显示一个窗口,包含一个标签和一个按钮。点击按钮后,标签的内容会更新为“按钮被点击了!”。
扩展功能
- 布局管理:使用
grid()
或place()
方法代替pack()
,以更灵活地控制组件的布局。 - 输入框:使用
tk.Entry
或tk.Text
创建输入框,允许用户输入文本。 - 菜单栏:使用 tk.Menu 创建菜单栏,添加菜单项和功能。
- 对话框:使用
tk.messagebox
或tk.filedialog
创建对话框,例如消息框、文件选择对话框等。 - 事件绑定:使用
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)