Ubuntu Python 图形界面开发怎么入门:环境配置、库选型与首个窗口示例

Ada
Ada
发布时间:2026-08-23| 72人浏览过
原创

前言

在 Ubuntu 上用 Python 做图形界面,真正容易卡住的往往不是代码本身,而是环境没理顺、库没选对,结果第一个窗口迟迟跑不起来。下面按“先装什么、先学哪个库、示例怎么运行、后续怎么提效”的顺序展开,适合想从零做一个桌面小工具,或者准备比较几套 GUI 方案再开工的读者。

在 Ubuntu 上用 Python 做图形界面,真正容易卡住的往往不是代码本身,而是环境没理顺、库没选对,结果第一个窗口迟迟跑不起来。下面按“先装什么、先学哪个库、示例怎么运行、后续怎么提效”的顺序展开,适合想从零做一个桌面小工具,或者准备比较几套 GUI 方案再开工的读者。

先把 Ubuntu 下的 Python 环境准备好

开始写界面前,先把基础开发环境整理干净。至少要确认 Python 3、pip 以及虚拟环境工具可用,这样后面安装 GUI 库和管理依赖时会省很多事。

基础安装命令

打开终端后,先执行下面几条命令:

sudo apt update
sudo apt install python3 python3-pip
sudo apt install python3-venv

这三步分别用于:

  • 更新软件包列表:sudo apt update
  • 安装 Python 3 和 pip:sudo apt install python3 python3-pip
  • 安装虚拟环境工具:sudo apt install python3-venv

安装完成后怎么验证

安装结束后,可以直接检查版本信息:

python3 --version
pip3 --version

只要终端能正常输出版本号,说明当前系统已经具备继续安装和运行 GUI 项目的基础条件。

Python GUI 库怎么选

Ubuntu 下可选的 Python GUI 库不少,但入门时没必要一口气全学。更实用的做法,是先根据项目复杂度和界面风格把范围缩小。

Ubuntu 下 Python GUI 库选型对比信息图
Ubuntu 下 Python GUI 库选用项目复杂度、界面风格和平台需求快速判断 Tkinter、PyQt /。

Tkinter:最省门槛的起点

Tkinter 是 Python 自带标准库,不需要额外安装,适合做基础窗口、小工具、简单配置面板一类应用。它的优势是上手快、资料多,适合第一次接触桌面界面开发的读者。

PyQt / PySide:复杂桌面应用优先考虑

PyQt / PySide 基于 Qt 框架,控件更丰富,也有成熟的可视化设计工具,适合企业级桌面程序、多媒体工具或者交互较复杂的项目。如果你后面需要更完整的布局、信号槽机制和更专业的桌面体验,Qt 系方案通常更稳。

Kivy:跨平台和触控场景更合适

Kivy 更偏跨平台,支持移动端,也适合多点触控应用,比如手机 App 或轻量小游戏。如果目标不仅是 Ubuntu 桌面,而是后续还考虑触屏设备,这类框架会更贴近需求。

customtkinter:想快速做出更现代的界面

customtkinter 可以理解为在 Tkinter 基础上做了更现代的 UI 封装,像圆角按钮、滑动条、深色主题这些常见元素都更容易直接用起来。它适合不想一开始就切到 Qt、但又觉得原生 Tkinter 外观太朴素的场景。

三个入门示例:把第一个窗口真正跑起来

下面这三个示例分别对应不同路线。代码都尽量保持原样,方便你直接复制运行,先感受事件绑定、布局和窗口主循环这些 GUI 开发最基础的概念。

三个 Python GUI 入门示例的运行路径信息图
三个入门示例的运行路线把 Tkinter、PyQt5 和 customtkinter。

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()

运行后会弹出一个窗口。输入名字并点击按钮,标签内容会更新成问候语。这个过程已经覆盖了 GUI 开发里的几个核心动作:创建窗口、添加控件、绑定事件和启动主循环。

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_())

这个例子比 Tkinter 更清楚地展示了布局管理和事件连接方式。点击按钮后,标签文字会更新,适合用来理解 Qt 的基本交互模型。

customtkinter 示例:更现代的登录界面

如果你更在意默认界面的观感,可以先安装 customtkinter:

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 更现代。对很多内部工具、小型客户端来说,这类方案已经能兼顾开发速度和基本视觉效果。

提升效率:开发工具和打包方案

当你能把第一个窗口跑起来之后,下一步通常是两件事:写代码更顺手,以及把程序交付给别人使用。

Ubuntu 下 Python GUI 开发提效与打包流程信息图
开发到分发的工具路径把开发阶段常用 IDE、编辑器和 PyInstaller 打包命令整理成一张流程图。

常用 IDE 与编辑器

  • PyCharm:适合把 Python GUI 项目当成长期开发任务来做,代码补全、调试、项目管理都比较完整。文中提到,社区版免费,解压后运行 bin/pycharm.sh 即可启动。
  • Visual Studio Code:更轻量,安装 Python 扩展如“Python”“Pylance”后,语法高亮和代码提示基本够用,适合喜欢自由配置编辑器的用户。

PyInstaller 打包命令

如果要把 Python 脚本分发给没有 Python 环境的用户,可以使用 PyInstaller。安装和打包命令如下:

pip3 install pyinstaller
pyinstaller --onefile your_script.py

打包完成后,可执行文件会生成在 dist 目录下。原文提到可用于生成 .exe/.deb 等分发形式,适合后续交付和测试。

后续学习资源怎么用

如果你已经完成环境配置,并顺利跑通一个示例,接下来最值得做的不是继续堆更多库,而是围绕自己选定的那一套路线往下深入。

  • 官方文档:Python 官方《Tkinter tutorial》、PyQt 官方文档(doc.qt.io)、Kivy 官方文档(kivy.org/doc)。
  • 在线教程:菜鸟教程的 Python GUI 部分、Real Python 的 PyQt 系列文章、Kivy 官方教程。
  • 书籍:《Python编程:从入门到实践》中的 Tkinter 章节、《PyQt5从入门到实践》以及《Kivy Cookbook》都可以作为进阶材料。

比较实际的学习路径是:先用 Tkinter 或 customtkinter 做出一个能用的小工具,确认自己已经理解窗口、控件、事件和布局;如果项目逐渐变复杂,再考虑迁移到 PyQt / PySide 这类更完整的框架。

入门时最值得记住的判断

如果你的目标是在 Ubuntu 上尽快做出一个能用的桌面小程序,先装好 python3、python3-pip 和 python3-venv,然后从 Tkinter 或 customtkinter 入手,通常是最省时间的路径。只有当项目对复杂交互、专业控件和后续扩展有更高要求时,再把重心放到 PyQt / PySide,会更符合实际开发节奏。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。