Tkinter 是 Python 内置的用于创建图形用户界面(GUI)的库。它作为 Tcl/Tk GUI 工具包的一个轻量级封装,为我们提供了一种简单、直观的方式来构建桌面应用程序。它支持布局管理、事件处理和自定义功能,非常适合在 Python 中快速开发 GUI。
创建第一个 Tkinter GUI 应用程序
在创建带有 GUI 的 Python 应用程序时,我们需要记住两个主要方法。这两个方法是:
1. Tk()
在 Tkinter 中,Tk() 类用于创建主应用程序窗口。每个 Tkinter 程序都始于创建一个且仅一个 Tk() 对象。下面是其语法:
> root = Tk(screenName=None, baseName=None, className=‘Tk‘, useTk=1)
参数:
- screenName (可选): 指定显示(主要用于具有多个屏幕的 Unix 系统)。
- baseName (可选): 设置应用程序的基本名称(默认为脚本名称)。
- className (可选): 定义窗口类的名称(用于样式和窗口管理器设置)。
- useTk (可选): 一个布尔值,指示是否初始化 Tk 子系统(通常保留默认值 1)。
2. mainloop()
mainloop() 方法用于启动 Tkinter 应用程序的事件循环。它保持窗口打开,等待用户操作(如鼠标点击或按键),并处理事件,直到窗口被关闭。下面是其语法:
> root.mainloop()
示例: 这个示例创建一个基本的 Tkinter 窗口并启动事件循环。
Python
CODEBLOCK_ef5f65fd
输出
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20240425154445/mainloopoutput.png">mainloopoutput
解释:
- tk.Tk():创建主应用程序窗口。
- root.mainloop():启动事件循环并保持窗口响应。
- 只有当窗口关闭时,程序才会停止。
Tkinter 小部件
我们可以将许多 tkinter 小部件 放入我们的 tkinter 应用程序中。下面解释一些主要的小部件:
1. Label(标签)
Label 小部件用于在 Tkinter 窗口中显示文本或图像。它通常用于显示消息、标题或说明。下面是其语法:
> label = tk.Label(master, option=value)
参数: master 指的是放置标签的父窗口或容器。
示例: 这个示例创建一个简单的窗口并显示一个文本标签。
Python
CODEBLOCK_bffa7b0a
输出
!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20240425154319/labeloutput.png">labeloutput一个显示文本 “GeeksForGeeks.org!” 的窗口。
解释: label.pack() 将标签放置在窗口内。
> 注意: Tkinter 小部件支持许多选项,例如 font(字体)、bg(背景)和 fg(前景)。示例中仅显示了少数常用选项。
2. Button(按钮)
Button 小部件是一个可点击的组件,用于在按下时执行操作,例如提交数据或关闭窗口。下面是其语法:
> button = tk.Button(master, option=value)
示例: 这个示例创建一个标题为“Counting Seconds”的窗口,其中包含一个 Stop 按钮。当点击该按钮时,应用程序关闭。
Python
CODEBLOCK_60e1cacd
输出
!Screenshot-2026-01-23-154328显示一个带有 Stop 按钮的窗口。点击按钮即可关闭窗口。
解释:
- tk.Button():创建一个按钮小部件。
- command=root.destroy:当点击按钮时关闭应用程序。
- button.pack():将按钮放置在窗口中。
3. Entry(输入框)
Entry 小部件用于接受用户输入的单行文本。对于多行文本输入,则使用 Text 小部件。下面是其语法:
> entry = tk.Entry(master, option=value)
示例: 这个示例创建一个简单的表单,其中包含 First Name 和 Last Name 输入字段。使用 grid() 几何管理器以类似表格的布局排列标签和输入框。
Python
CODEBLOCK_1a5afb86
输出
!Screenshot-2026-01-23-154752显示一个带有名字和姓氏输入框的窗口。
解释:
- tk.Label:显示字段标签("First Name" 和 "Last Name")。
- tk.Entry:创建文本输入框。
- .grid():使用网格几何管理器将小部件组织成行和列。