1. Tkinter 是什么
这是什么:Tkinter(读作 "Tee-Kay-inter",Tk interface 的缩写)是 Python 标准库自带的图形界面工具箱——不用 pip 装任何东西,import tkinter 就能给你的程序开一扇窗口。
为什么用:前面学的程序都活在终端里,print 出来的文字只有你自己看得懂;想把工具分享给不懂编程的人,得让对方会开命令行,基本等于没分享。GUI(Graphical User Interface,图形用户界面)程序双击就开、点点就能用,而 Tkinter 是 Python 里零安装成本的那一个——这也是本站选它入门 GUI 而不是 PySide6、Flet 的原因:窗口、控件、布局、事件循环这四件事在所有 GUI 框架里是同一套概念,学完 Tkinter 再换大框架只是改 API 名。
如何用:先花十行认识 GUI 程序和终端程序的区别,再用三行代码开出你这辈子第一个窗口。
GUI 程序和终端程序,差在哪
| 维度 | 终端程序(前面学的) | GUI 程序(这一栈) |
|---|---|---|
| 启动方式 | 打开命令行敲 python xxx.py |
双击图标(打包后) |
| 输入 | 键盘敲一行回车 | 鼠标点按钮、框里打字 |
| 输出 | print 刷文字 |
窗口里标签、列表即时变化 |
| 程序节奏 | 从头执行到尾,跑完退出 | 开完窗口就等,等你操作才动 |
最后一行是本栈最重要的观念转变:GUI 程序大部分时间不在"执行代码",而在等事件——你点一下按钮,它才跑一次你事先挂好的函数。这个"等"由一个叫 mainloop() 的循环负责,第 2 章马上见到它。
三行开出第一个窗口
把下面三行存成 hello_gui.py,双击运行或在终端跑都行:
import tkinter as tk
root = tk.Tk()
root.mainloop()
你会看到:屏幕中央弹出一个空白小窗口(Windows 是灰白色、macOS 是浅色),带最小化/最大化/关闭按钮,不点关闭它永远不退出——这就是 mainloop() 在等事件。
| 代码 | 作用 |
|---|---|
import tkinter as tk |
导入标准库工具箱,约定俗成缩写成 tk |
root = tk.Tk() |
创建主窗口(root,根窗口),一个程序只建一次 |
root.mainloop() |
进入事件循环:窗口保持打开,你的每次点击/按键被派发给对应函数 |
顺手辟个谣
网上有些老文章说"tkinter 已从 Python 标准库移除"——不对。Python 3.13 移除的只是 tkinter.tix 这个没人用的子模块,tkinter 本体现在仍在标准库里(官方文档可查),3.15 也在。装官方 Python 就有,Windows/macOS 默认勾选,Linux 发行版可能拆成单独的 python3-tk 包——下一章环境自检教你一条命令验证。
这一栈的路线
第2章 窗口 → 第3章 摆控件 → 第4章 排位置 → 第5章 让它响应
(建窗口/自检) (按钮/输入框) (pack/grid) (事件/变量)
↓
第8章 迷你待办清单 ← 第7章 打包exe ← 第6章 菜单与弹窗 ←──┘
(全栈串一遍) (发给朋友用) (像正经软件)
记忆口诀:Tk 三步曲——Tk() 建窗口,往里摆控件,mainloop() 等事件。
动手改
- 把
root.mainloop()注释掉再运行——窗口是不是闪一下就没了?理解"程序没死,只是不等了" - 在
Tk()之后加一行root.title("你好,桌面"),看标题栏变了没 - 再开一个
tk.Tk()试试(提示:一个进程里建两个主窗口会打架,这是设计如此)
下一章:环境自检与第一个窗口 🐸