Ubuntu下Python GUI库选择指南
一、快速推荐
- 零基础、工具脚本、教学演示:优先用 Tkinter(标准库、随Python自带、上手最快)。
- 企业级桌面应用、复杂交互、需要Qt生态与工具链:选 PyQt5/PySide2(组件丰富、跨平台、工具完善)。
- 贴近 GNOME 桌面风格、Linux 原生外观:选 PyGTK(GTK+ 3,PyGObject)。
- 触控/移动端或需要一套代码覆盖桌面与移动:选 Kivy。
- 追求现代主题外观、快速做出漂亮界面:选 customtkinter(基于Tkinter的现代化组件)。
- 实时可视化/调试面板/工具型界面:选 Dear PyGui(即时模式、性能友好)。
二、主流库对比
| 库 |
主要优势 |
典型场景 |
在Ubuntu的安装 |
许可与注意 |
| Tkinter |
标准库、零依赖、学习成本低 |
小工具、教学、原型 |
sudo apt install python3-tk |
开源、随Python |
| PyQt5 / PySide2 |
组件丰富、Qt生态强、跨平台 |
复杂桌面应用、企业软件 |
sudo apt install python3-pyqt5 或 pip3 install PySide2 |
商业使用注意许可证差异 |
| PyGTK(GTK+ 3) |
与GNOME深度集成、Linux原生观感 |
Linux桌面应用 |
sudo apt install python3-gi gir1.2-gtk-3.0 |
跨平台支持相对一般 |
| wxPython |
原生外观、跨平台 |
传统桌面应用 |
sudo apt install python3-wxgtk4.0 |
第三方生态一般 |
| Kivy |
多点触控、移动端友好、跨平台 |
触控应用、移动+桌面一体 |
sudo apt install python3-kivy 或 pip3 install kivy |
桌面风格偏“移动化” |
| customtkinter |
现代化主题、易上手 |
需要美观UI的桌面工具 |
pip3 install customtkinter |
基于Tkinter,主题可切换 |
| Dear PyGui |
即时模式、高性能、适合工具面板 |
可视化/调试/监控面板 |
pip3 install dearpygui |
更偏工具型界面 |
说明:表中安装命令与许可要点来自各库在Ubuntu上的常见实践与特性概述;许可证方面,PyQt 与 PySide 存在商业使用条款差异,企业项目需审阅对应许可;Dear PyGui 采用即时模式,适合实时渲染与工具型界面。
三、按场景选择
- 学习/小工具/内部脚本:优先 Tkinter;若重视观感可再评估 customtkinter。
- 复杂桌面应用、需要设计器与成熟生态:选 PyQt5/PySide2(Qt Designer、信号槽、国际化、样式表等完善)。
- 希望与 Linux/GNOME 桌面风格一致:选 PyGTK。
- 需要覆盖 Android/iOS 或强调触控体验:选 Kivy。
- 需要快速做出“现代化”界面而不想折腾样式细节:选 customtkinter。
- 需要实时可视化/调试面板/嵌入式工具界面:选 Dear PyGui。
四、安装与起步示例
- 安装 Tkinter:sudo apt install python3-tk;验证:python3 -m tkinter(应弹出测试窗口)。
- 安装 PyQt5:sudo apt install python3-pyqt5;最小示例:
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication([])
QLabel(‘Hello, PyQt5!’).show(); app.exec_()
- 安装 PyGTK(GTK+ 3):sudo apt install python3-gi gir1.2-gtk-3.0;最小示例:
import gi; gi.require_version(‘Gtk’,‘3.0’)
from gi.repository import Gtk
win = Gtk.Window(title=“Hello, GTK+”); label = Gtk.Label(label=“Hello, World!”)
win.add(label); win.connect(“destroy”, Gtk.main_quit); win.show_all(); Gtk.main()
- 安装 Kivy:sudo apt install python3-kivy;最小示例:
from kivy.app import App; from kivy.uix.label import Label
class MyApp(App): def build(self): return Label(text=‘Hello, Kivy!’)
MyApp().run()
- 安装 Dear PyGui:pip3 install dearpygui;最小示例:
import dearpygui.dearpygui as dpg
with dpg.window(label=“Demo”): dpg.add_text(“Hello, Dear PyGui!”); dpg.add_button(label=“Click”, callback=lambda: print(“Hi”))
dpg.start_dearpygui()
以上示例覆盖了在 Ubuntu 上最常见的安装方式与“Hello World”级起步代码,便于快速对比上手体验。
五、打包与交付
- 将Python GUI应用打包为可执行文件,常用 PyInstaller:pip install pyinstaller;打包命令示例:pyinstaller --onefile your_script.py(生成单文件可执行程序,便于分发)。
- 也可使用 cx_Freeze(跨平台支持略不同,配置相对繁琐),适合需要自定义打包流程的项目。