发布于2026-07-04 阅读(0)
扫一扫,手机访问
提到在Ubuntu上做Python图形界面开发,很多开发者首先面对的困惑就是“该选哪个库”。不同的项目需求决定了不同的技术选型,从轻量级工具到桌面级应用,再到触控交互场景,每个库都有自己擅长的领域。这里整理了几款主流方案的安装、基础示例和适用场景,供大家参考。

Tkinter作为Python自带的“亲儿子”,最大的优势就是不用折腾安装环境。Ubuntu默认就包含它,语法也特别直白,很适合快速搭出一些简单界面。
import tkinter as tk
def on_click():
label.config(text=f"Hello, {entry.get()}")
root = tk.Tk()
root.title("Tkinter Demo")
root.geometry("300x200")
label = tk.Label(root, text="Enter your name:")
label.pack(pady=10)
entry = tk.Entry(root)
entry.pack(pady=5)
button = tk.Button(root, text="Greet", command=on_click)
button.pack(pady=10)
root.mainloop()PyQt5和PySide2都是Qt框架的Python绑定,只不过后者用的是LGPL许可证,更友好一些。它们俩都提供了非常丰富的控件库和信号槽机制,配合Qt Designer甚至可以直接拖拽设计界面,开发效率和完成度都比较高。
pip3 install pyqt5
# 或 pyside2from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QPushButton, QVBoxLayout, QMessageBox
app = QApplication([])
window = QWidget()
window.setWindowTitle("PyQt5 Demo")
window.setGeometry(100, 100, 300, 200)
layout = QVBoxLayout()
label = QLabel("Click the button below:")
button = QPushButton("Show Message")
def show_message():
QMessageBox.information(window, "Message", "Hello from PyQt5!")
button.clicked.connect(show_message)
layout.addWidget(label)
layout.addWidget(button)
window.setLayout(layout)
window.show()
app.exec_()如果项目需要在手机、平板和电脑上都跑得通,Kivy几乎是一个绕不开的选择。这款库从设计之初就特别强调多点触控和移动端体验,支持Windows、macOS、Linux、Android、iOS,覆盖面相当广。
pip3 install kivyfrom kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.button import Button
class MyApp(App):
def build(self):
layout = BoxLayout(orientation='vertical', padding=10, spacing=10)
self.label = Label(text="Hello, Kivy!", font_size=20)
button = Button(text="Click Me", size_hint=(None, None), size=(150, 50))
button.bind(on_press=lambda x: self.change_text())
layout.add_widget(self.label)
layout.add_widget(button)
return layout
def change_text(self):
self.label.text = "Button Clicked!"
MyApp().run()如果你对Linux生态有感情,或者项目专门面向GNOME桌面环境用户,GTK+结合PyGObject是接地气的选择。它的界面与GNOME深度集成,视觉效果和操作习惯都更符合Linux用户的预期。
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class MyWindow(Gtk.Window):
def __init__(self):
super().__init__(title="GTK Demo")
self.set_default_size(250, 150)
label = Gtk.Label(label="Hello, GTK!")
self.add(label)
win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()wxPython走的是“原生”路线,它在Windows、macOS、Linux上各自调用系统控件,所以应用看起来就跟操作系统自己的一样。对于需要跨平台但又希望保持系统风格一致的项目,是个靠谱的选择。
pip3 install wxPythonimport wx
class MyFrame(wx.Frame):
def __init__(self):
super().__init__(None, title="wxPython Demo", size=(300, 200))
panel = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
label = wx.StaticText(panel, label="Hello, wxPython!")
button = wx.Button(panel, label="Show Message")
button.Bind(wx.EVT_BUTTON, self.on_click)
vbox.Add(label, flag=wx.ALL, border=10)
vbox.Add(button, flag=wx.ALL, border=10)
panel.SetSizer(vbox)
def on_click(self, event):
wx.MessageBox("Hello from wxPython!", "Message", wx.OK | wx.ICON_INFORMATION)
app = wx.App(False)
frame = MyFrame()
frame.Show()
app.MainLoop()如果非要给个简单的选择路线图:
归根结底,选库不是目的,解决问题才是。根据项目具体需求(平台、交互方式、界面风格)来判断,才能少走弯路,快速把想法落地。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8