Python GUI 编程入门教程(Tkinter 详细流程)
一、什么是GUI?为什么用Tkinter?
GUI 是图形用户界面(Graphical User Interface),就是带窗口、按钮、输入框的桌面程序。
Python 里做 GUI 最常用、最简单、自带不用安装的库就是 Tkinter。
它的优点:
- Python 自带,不用 pip 安装
- 语法简单,适合新手入门
- 跨平台(Windows、macOS、Linux 都能用)
- 适合做小工具、计算器、管理系统界面
本篇教程全程使用 Tkinter,带你从“空窗口”一步步做到“带按钮、输入、点击事件的完整程序”。
二、开发前准备
你只需要:
1. 安装好 Python(3.6 以上都行)
2. 任意编辑器:VS Code、PyCharm、IDLE 都可以
Tkinter 是 Python 标准库,不用额外安装,直接导入就能用。
三、GUI 开发基本流程(固定四步)
不管做什么界面,Tkinter 开发流程几乎固定:
1. 创建主窗口
2. 添加控件(按钮、文本、输入框等)
3. 设置布局(放在哪里)
4. 启动主循环(让窗口一直显示)
下面我们一步步实现。
四、第一步:创建最简单的窗口
新建文件 gui_demo.py ,写入代码:
python
# 导入Tkinter库
import tkinter as tk
# 1. 创建主窗口
root = tk.Tk()
# 2. 设置窗口标题
root.title("我的第一个GUI程序")
# 3. 设置窗口大小
root.geometry("400x300")
# 4. 启动主循环(必须写!)
root.mainloop()
运行后,你会看到一个 400×300 的空白窗口。
mainloop() 是 GUI 的“死循环”,让窗口持续显示、接收点击、拖动等操作。
五、第二步:添加常用控件
GUI 就是一堆控件的组合。最常用的有:
- Label:文字标签
- Button:按钮
- Entry:输入框
- Text:多行文本框
- Checkbutton:复选框
1. 添加文字 Label
python
label = tk.Label(root, text="欢迎使用GUI", font=("宋体", 16))
label.pack() # 布局:自动居中摆放
2. 添加输入框 Entry
python
entry = tk.Entry(root, font=("宋体", 14))
entry.pack(pady=10) # pady=上下间距
3. 添加按钮 Button
python
btn = tk.Button(root, text="点击我", font=("宋体", 14))
btn.pack()
把这些代码放在 root.geometry 之后、 mainloop 之前。
运行后,你就有了文字 + 输入框 + 按钮。
六、第三步:让按钮真正有用——事件函数
GUI 核心是交互:点击按钮 → 执行功能。
我们写一个函数,获取输入框内容并弹出提示。
python
from tkinter import messagebox
def show_msg():
# 获取输入框内容
content = entry.get()
if content:
messagebox.showinfo("提示", f"你输入了:{content}")
else:
messagebox.showwarning("警告", "输入不能为空!")
然后把函数绑定到按钮:
python
btn = tk.Button(root, text="点击获取内容", command=show_msg)
command=函数名 就是点击后执行的动作。
现在运行,输入内容点击按钮,就能弹出提示。
七、第四步:三种布局方式(必学)
Tkinter 有三种布局:
1. pack():自动从上到下排列(最简单)
2. grid():表格布局(像Excel,行×列)
3. place(x,y):精确坐标(适合固定位置)
grid 表格布局示例:
python
label1 = tk.Label(root, text="用户名:")
label1.grid(row=0, column=0, padx=10, pady=10)
entry1 = tk.Entry(root)
entry1.grid(row=0, column=1, padx=10, pady=10)
label2 = tk.Label(root, text="密码:")
label2.grid(row=1, column=0, padx=10, pady=10)
entry2 = tk.Entry(root, show="*")
entry2.grid(row=1, column=1, padx=10, pady=10)
这会做出一个登录界面。
八、第五步:做一个完整小案例——登录窗口
我们把前面知识拼成一个可用的登录程序。
完整代码:
python
import tkinter as tk
from tkinter import messagebox
def check_login():
username = entry_user.get()
password = entry_pwd.get()
if username == "admin" and password == "123456":
messagebox.showinfo("成功", "登录成功!")
else:
messagebox.showerror("失败", "用户名或密码错误")
# 主窗口
root = tk.Tk()
root.title("登录系统")
root.geometry("350x200")
# 控件
tk.Label(root, text="用户名:", font=("宋体",12)).grid(row=0,column=0,padx=10,pady=20)
entry_user = tk.Entry(root, font=("宋体",12))
entry_user.grid(row=0,column=1,padx=10)
tk.Label(root, text="密码:", font=("宋体",12)).grid(row=1,column=0,padx=10)
entry_pwd = tk.Entry(root, font=("宋体",12), show="*")
entry_pwd.grid(row=1,column=1,padx=10)
# 登录按钮
btn_login = tk.Button(root, text="登录", width=10, command=check_login)
btn_login.grid(row=2,column=0,columnspan=2,pady=20)
root.mainloop()
功能:
- 输入用户名 admin、密码 123456 → 登录成功
- 否则提示错误
这就是最标准的GUI项目结构。
九、Tkinter 学习路线(你接下来该学什么)
1. 更多控件:Listbox、Frame、Menu、Canvas
2. 界面美化:修改颜色、字体、大小、图标
3. 绑定键盘事件、鼠标事件
4. 多窗口切换(登录→主页)
5. 结合文件操作、数据库、爬虫做成工具
6. 打包成 exe 发给别人用(pyinstaller)
十、总结(核心思想)
Python GUI 开发并不难,Tkinter 是最好的起点。
固定流程:
创建窗口 → 加控件 → 设布局 → 写事件函数 → 启动循环。
只要掌握这一套,你就能做出:
- 计算器
- 记事本
- 学生管理系统
- 数据采集小工具
- 自动填表工具
GUI 是把代码变成人人能用的软件最直接的方式,非常适合练手、做毕设、写实用小工具。