Ubuntu下Python图形界面开发入门指南

想用Python在Ubuntu上做个带界面的小工具?其实门槛比想象中低得多。从环境准备到第一个窗口跑起来,拢共也就几步的事。下面就把这条路捋清楚,顺便聊聊不同库的选型思路,帮你少走些弯路。
一、准备工作:配置Python环境
动手之前,先把环境收拾利索。打开终端,做几件基础事:
- 更新软件包列表:
sudo apt update - 安装Python3和pip:
sudo apt install python3 python3-pip - (推荐)安装虚拟环境工具,隔离项目依赖:
sudo apt install python3-venv
验证一下:终端里分别敲python3 --version和pip3 --version,能看到版本号就说明齐活了。
二、选择GUI库:根据需求选型
Python的GUI库有好几款,各有各的脾气,选对了对胃口能省不少事:
- Tkinter:Python自带的标准库,不用额外装,学起来快,适合做基础窗口,比如工具类小应用、简单配置面板。
- PyQt / PySide:基于Qt框架,功能硬核,控件丰富,还有可视化设计工具,适合开发企业级桌面应用、多媒体工具这类复杂项目。
- Kivy:跨平台框架,支持移动端,适合做多点触控应用,比如手机APP或小游戏。
- customtkinter:在Tkinter基础上包了一层现代UI,圆角按钮、滑动条这些控件颜值在线,适合想快速做个好看基础应用的同学。
三、常见GUI库入门示例
1. Tkinter(标准库,新手首选)
Tkinter不用安装,直接导入就能用。下面这个例子包含标签、输入框和按钮,非常经典:
import tkinter as tk
def on_click():
label.config(text=f"Hello, {entry.get()}!")
# 创建主窗口
root = tk.Tk()
root.title("Tkinter入门示例")
root.geometry("300x200") # 设置窗口大小
# 添加组件
label = tk.Label(root, text="请输入你的名字:")
label.pack(pady=10) # pady为垂直间距
entry = tk.Entry(root, width=20) # 输入框
entry.pack(pady=5)
button = tk.Button(root, text="打招呼", command=on_click)
button.pack(pady=10)
# 运行主循环(保持窗口显示)
root.mainloop()
跑起来后,一个窗口弹出来,输入名字点按钮,标签就会显示问候语。
2. PyQt5(功能强大,适合复杂应用)
PyQt5需要先装一下:pip3 install PyQt5。下面是一个带标签和按钮的简单窗口:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout
def on_click():
label.setText("按钮被点击了!")
# 创建应用实例
app = QApplication(sys.argv)
# 创建主窗口
window = QWidget()
window.setWindowTitle("PyQt5入门示例")
window.setGeometry(100, 100, 300, 200) # (x, y, width, height)
# 布局管理(垂直布局)
layout = QVBoxLayout()
# 添加组件
label = QLabel("欢迎使用PyQt5!")
layout.addWidget(label)
button = QPushButton("点击我")
button.clicked.connect(on_click) # 绑定点击事件
layout.addWidget(button)
# 设置布局
window.setLayout(layout)
# 显示窗口并进入主循环
window.show()
sys.exit(app.exec_())
同样弹出一个窗口,点击按钮后标签文字会变。
3. customtkinter(现代外观,Tkinter升级)
安装命令:pip3 install customtkinter。下面是一个现代风格的登录窗口:
import customtkinter as ctk
def login():
print("登录成功!")
# 设置主题(可选:light/dark/system)
ctk.set_appearance_mode("dark")
ctk.set_default_color_theme("blue")
# 创建主窗口
root = ctk.CTk()
root.title("现代登录界面")
root.geometry("400x300")
# 添加组件
frame = ctk.CTkFrame(root, corner_radius=10)
frame.pack(pady=20, padx=20, fill="both", expand=True)
ctk.CTkLabel(frame, text="用户登录", font=("Arial", 20)).pack(pady=10)
ctk.CTkEntry(frame, placeholder_text="用户名").pack(pady=5)
ctk.CTkEntry(frame, placeholder_text="密码", show="*").pack(pady=5)
ctk.CTkButton(frame, text="登录", command=login).pack(pady=10)
ctk.CTkCheckBox(frame, text="记住密码").pack(pady=5)
root.mainloop()
出来的窗口是深色主题,简洁现代,颜值确实比原生Tkinter高出一截。
四、提升开发效率:IDE与工具
- PyCharm:Python IDE里的王牌,支持PyQt的可视化设计,代码补全、调试都很顺手。装社区版免费,解压后运行
bin/pycharm.sh就能启动。 - Visual Studio Code:轻量编辑器,装上Python扩展(比如“Python”“Pylance”)后,语法高亮、代码提示都到位,适合喜欢折腾编辑器的人。
- PyInstaller:把Python脚本打包成可执行文件(.exe/.deb等),方便分发给没有Python环境的用户。安装:
pip3 install pyinstaller,打包命令:pyinstaller --onefile your_script.py,生成的可执行文件在dist目录下。
五、学习资源推荐
- 官方文档:Python官方《Tkinter tutorial》、PyQt官方文档(doc.qt.io)、Kivy官方文档(kivy.org/doc)。
- 在线教程:菜鸟教程的Python GUI部分、Real Python的PyQt系列文章、Kivy官方教程。
- 书籍:《Python编程:从入门到实践》里有Tkinter章节;《PyQt5从入门到实践》和《Kivy Cookbook》也是不错的进阶读物。
照着上面的步骤和例子走一遍,Ubuntu下的Python GUI开发就算正式入门了。接下来根据实际需求选好库,多动手,慢慢就能做出自己想要的复杂应用。