Python 库手册:tkinter 图形用户界面 GUI 模块
tkinter 是 Python 标准库中用于创建图形用户界面(GUI)的模块,是 Tk GUI 工具包的官方绑定。它提供跨平台的 GUI 编程能力,适用于快速构建桌面应用、可视化工具和教学程序等。
常见应用场景:
(1)构建桌面应用程序(如记事本、计算器)。
(2)教学演示(如 GUI 控件交互)。
(3)简单的图形界面工具(如图像查看器、数据录入窗体)。
(4)数据可视化窗口、进度条、按钮面板。
◆ ◆ ◆
核心概念
1、Tk
底层 GUI 工具包,跨平台的轻量级窗口工具集。
2、tkinter 模块
Python 对 Tk 的封装,提供类如 Tk、Button、Label 等。
3、窗口组件(Widget)
如按钮、标签、输入框等 GUI 元素。
4、布局管理器
用于排列控件的位置,常用的有 pack()、grid()、place()。
5、事件绑定与响应
通过 .bind() 或命令参数绑定回调函数实现交互。
◆ ◆ ◆
应用举例
例 1:创建基础窗口
import tkinter as tk
root = tk.Tk()root.title("Hello mediaTEA")root.geometry("300x150")
label = tk.Label(root, text="欢迎使用 mediaTEA!", font=("Arial", 14))label.pack(pady=30)
root.mainloop()
例 2:按钮点击事件响应
import tkinter as tk
def on_click(): label.config(text="你点击了按钮!")
root = tk.Tk()root.title("按钮事件示例")
label = tk.Label(root, text="请点击按钮")label.pack()
btn = tk.Button(root, text="点击我", command=on_click)btn.pack()
root.mainloop()
例 3:输入框与标签联动
import tkinter as tk
def show_text(): user_input = entry.get() label.config(text=f"你输入了:{user_input}")
root = tk.Tk()root.title("输入框示例")
entry = tk.Entry(root, width=20)entry.pack(pady=5)
btn = tk.Button(root, text="确认", command=show_text)btn.pack()
label = tk.Label(root, text="等待输入...")label.pack(pady=10)
root.mainloop()
例 4:多控件布局(使用 Frame 分组)
import tkinter as tk
root = tk.Tk()root.title("控件布局示例")
top_frame = tk.Frame(root)top_frame.pack(pady=10)
tk.Label(top_frame, text="用户名:").pack(side="left")tk.Entry(top_frame).pack(side="left")
bottom_frame = tk.Frame(root)bottom_frame.pack(pady=10)
tk.Label(bottom_frame, text="密码:").pack(side="left")tk.Entry(bottom_frame, show="*").pack(side="left")
tk.Button(root, text="登录").pack(pady=10)
root.mainloop()
例 5:使用文件对话框打开文件路径
import tkinter as tkfrom tkinter import filedialog
def open_file(): path = filedialog.askopenfilename(title="选择文件") if path: label.config(text=f"打开文件:{path}")
root = tk.Tk()root.title("文件选择示例")
tk.Button(root, text="打开文件", command=open_file).pack(pady=10)label = tk.Label(root, text="尚未选择文件")label.pack(pady=10)
root.mainloop()
◆ ◆ ◆
常用函数/控件速览
Button(master, text="", command=None, state=NORMAL, width=None, height=None, bg=None, fg=None)
创建一个按钮控件。
参数:
master:父容器
text:按钮显示文字
command:点击时调用的函数
state:按钮状态(NORMAL, DISABLED)
width / height:按钮大小(字符单位)
bg / fg:背景/前景色
返回:Button 实例
Entry(master, width=None, show=None, state=NORMAL, textvariable=None)
创建单行文本输入框。
参数:
master:父容器
width:宽度(字符数)
show:显示符号(如密码框 show="*")
state:是否可编辑(NORMAL, DISABLED)
textvariable:与变量绑定(如 StringVar())
返回:Entry 实例
Frame(master, bg=None, width=None, height=None, relief=None, borderwidth=0)
创建容器框架,用于组织和布局控件。
参数:
master:父容器
bg:背景色
relief:边框样式(RAISED, SUNKEN, GROOVE, 等)
borderwidth:边框宽度
返回:Frame 实例
Label(master, text="", image=None, bg=None, fg=None, font=None)
创建文本或图像标签。
参数:
master:父容器
text:要显示的文本
image:图像对象
bg / fg:背景 / 前景色
font:字体设置
返回:Label 实例
Listbox(master, selectmode=SINGLE, height=None, width=None, bg=None)
创建可选择的项目列表。
参数:
master:父容器
selectmode:选择模式(SINGLE, MULTIPLE, EXTENDED, BROWSE)
height / width:行数 / 列宽
bg:背景色
返回:Listbox 实例
mainloop()
启动主事件循环,保持窗口运行。
参数:无
返回:无(阻塞式,直到关闭窗口)
Menu(master, tearoff=True)
创建菜单栏或下拉菜单。
参数:
master:父容器(如窗口或另一个菜单)
tearoff:是否可分离(默认为 True)
返回:Menu 实例
messagebox.showinfo(title, message)
显示信息提示框。
参数:
title:标题
message:内容
返回:如 'ok'
说明:
还有其他对话框,如:showwarning()、showerror() 以及 askyesno() 等。
widget.pack(side=TOP, fill=None, expand=False, padx=0, pady=0)
使用包布局将控件添加到窗口中。
参数:
side:排列方向(TOP, BOTTOM, LEFT, RIGHT)
fill:是否填充(X, Y, BOTH)
expand:是否扩展占据多余空间(布尔值)
padx / pady:内边距
返回:无
Radiobutton(master, text="", variable=None, value=None, command=None)
创建单选按钮。
参数:
master:父容器
text:显示文本
variable:控制选中状态的变量(IntVar, StringVar)
value:本按钮对应的值
command:状态改变时调用的函数
返回:Radiobutton 实例
Scale(master, from_=0, to=100, orient=HORIZONTAL, resolution=1, tickinterval=None, command=None)
创建滑动条控件。
参数:
from_ / to:范围最小值 / 最大值
orient:方向(HORIZONTAL, VERTICAL)
resolution:步进值(默认 1)
tickinterval:刻度间隔
command:值变动时回调
返回:Scale 实例
Text(master, width=None, height=None, wrap=CHAR)
创建多行文本输入框。
参数:
master:父容器
height / width:行数 / 列数
wrap:自动换行方式(CHAR, WORD, NONE)
返回:Text 实例
Tk()
创建主窗口对象,所有控件的顶级容器。
参数:无
返回:Tk 实例(主窗口)
Toplevel(master=None)
创建新的顶级窗口(额外子窗口)。
参数:
master:父窗口(可选)
返回:Toplevel 实例
withdraw()
隐藏窗口(不关闭),常用于只显示对话框不显示主窗口。
参数:无
返回:无
◆ ◆ ◆
补充说明
1、tkinter 是学习 GUI 编程的首选工具,轻量、高效、无需额外安装。
2、ttk 是其现代风格子库,提供了风格统一、平台一致的控件外观。
3、若需对话框功能,可使用 tkinter.messagebox、filedialog、simpledialog 模块。
4、使用 tkinter 创建 GUI 时,应始终通过 mainloop() 启动界面响应机制。

“点赞有美意,赞赏是鼓励”
更多推荐

所有评论(0)