发布于2026-07-14 阅读(0)
扫一扫,手机访问
想在 Ubuntu 上搞 Python GUI 开发?其实可选的路子不少。下面逐一聊聊几个主流的框架,以及怎么装、怎么用。先上一个整体印象:Tkinter 适合快速原型,PyQt5 和 PySide2 功能强大但稍重,Kivy 主攻多点触控,wxPython 则追求原生外观。具体选哪个,看你的项目场景和审美偏好。

Tkinter 是 Python 自带的标配,但凡装了 Python 基本就能用。如果系统没带,补一下也很简单:
sudo apt update
sudo apt install python3-tk
写个 Hello World 就几行:
import tkinter as tk
root = tk.Tk()
root.title("Hello, Tkinter!")
label = tk.Label(root, text="Hello, World!")
label.pack()
root.mainloop()
说白了,Tkinter 就是轻量级、零依赖,适合小工具或快速验证想法。不过界面风格偏老,想做得漂亮得花些心思。
PyQt5 基于 Qt 库,功能全面,文档和社区都很成熟。Ubuntu 上安装很直接:
sudo apt update
sudo apt install python3-pyqt5
示例代码跟 Qt 的套路一样:
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication([])
label = QLabel('Hello, PyQt5!')
label.show()
app.exec_()
PyQt5 的优势在于控件丰富、支持样式表和信号槽机制,适合做复杂桌面应用。不过二进制包体积偏大,而且许可证是 GPL,商业用要注意。
Kivy 是专门为多点触控和移动端设计的库,当然也能跑在桌面。安装同样简单:
sudo apt update
sudo apt install python3-kivy
写一个简单的 App:
from kivy.app import App
from kivy.uix.label import Label
class MyApp(App):
def build(self):
return Label(text='Hello, Kivy!')
if __name__ == '__main__':
MyApp().run()
Kivy 自带一套自定义的界面描述语言(KV),界面表现力很强,尤其适合需要触摸交互或跨平台(Android/iOS)的项目。缺点是对原生桌面控件支持一般,风格也偏扁平化。
wxPython 走的是“原生外观”路线,控件直接调取系统底层,所以运行起来看着像本地应用。Ubuntu 上安装:
sudo apt update
sudo apt install python3-wxgtk4.0
一个简单窗口的写法:
import wx
app = wx.App(False)
frame = wx.Frame(None, wx.ID_ANY, "Hello, wxPython")
panel = wx.Panel(frame, wx.ID_ANY)
label = wx.StaticText(panel, wx.ID_ANY, "Hello, World!")
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(label, 0, wx.ALL, 5)
panel.SetSizer(sizer)
frame.Show(True)
app.MainLoop()
如果你特别在意应用在 Ubuntu 上是否跟系统风格一致,wxPython 是很好的选择。不过它的 API 设计偏老,学习曲线比 PyQt 略陡一点。
PySide2 是 Qt 官方的 Python 绑定,跟 PyQt5 功能几乎一样,但由 Qt 公司维护,许可证是 LGPL,商业友好。安装:
sudo apt update
sudo apt install python3-pyside2
示例代码跟 PyQt5 极其相似:
from PySide2.QtWidgets import QApplication, QLabel
app = QApplication([])
label = QLabel('Hello, PySide2!')
label.show()
app.exec_()
可以说 PySide2 和 PyQt5 是“同父异母”的关系,API 差异极小。选择哪个更多取决于许可证偏好或团队习惯。
回顾一下这几个方向:Tkinter 是入门首选,零开销;PyQt5 和 PySide2 适合需要专业级界面的项目;Kivy 是触摸和移动场景的利器;wxPython 则专注原生体验。没有绝对的“最好”,只有跟你的需求最匹配的方案。希望这个梳理能帮你快速定位方向,少走些弯路。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8