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() 启动界面响应机制。

图片

“点赞有美意,赞赏是鼓励”

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐