发布于2026-07-16 阅读(0)
扫一扫,手机访问
在Ubuntu环境下用Python做图形界面开发,其实有不少成熟的方案。每个人习惯不同、项目需求不同,选择自然也不一样。下面我们就来逐一看看主流的几种库,它们各自有什么特点、怎么入门。

Tkinter 是 Python 自带的“亲儿子”,标准库的一部分,装好 Python 就自动带了。它的优点就是简单、轻量,适合快速拼出一个小工具,不需要额外装任何东西。
import tkinter as tk
def on_button_click():
label.config(text="Hello, " + entry.get())
root = tk.Tk()
root.title("Tkinter Example")
label = tk.Label(root, text="Enter your name:")
label.pack()
entry = tk.Entry(root)
entry.pack()
button = tk.Button(root, text="Greet", command=on_button_click)
button.pack()
root.mainloop()
PyQt5 是基于 Qt 框架的 Python 绑定,功能非常完善,组件丰富,适合开发复杂的桌面应用。当然代价就是安装包体积大一些,学习曲线也稍微陡一点。不过一旦上手,你会感受到它的强大——从对话框到多窗口、从样式表到数据库集成,几乎无所不能。
先装好它:
pip install pyqt5
然后就可以写个简单的例子:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout
class MyApp(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('PyQt5 Example')
layout = QVBoxLayout()
self.label = QLabel('Enter your name:')
layout.addWidget(self.label)
self.entry = QLineEdit()
layout.addWidget(self.entry)
self.button = QPushButton('Greet')
self.button.clicked.connect(self.on_button_click)
layout.addWidget(self.button)
self.label_result = QLabel()
layout.addWidget(self.label_result)
self.setLayout(layout)
def on_button_click(self):
self.label_result.setText("Hello, " + self.entry.text())
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = MyApp()
ex.show()
sys.exit(app.exec_())
Kivy 主打的是多点触控和跨平台,一套代码能跑在 Windows、macOS、Linux、Android 甚至 iOS 上。如果你有移动端或触摸屏交互的需求,Kivy 是个很值得关注的选择。它的界面布局用的是自己的一套语言(.kv 文件),不过入门时直接用 Python 写也行。
安装命令:
pip install kivy
简单示例:
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
class MyApp(App):
def build(self):
layout = BoxLayout(orientation='vertical')
self.label = Label(text="Enter your name:")
layout.add_widget(self.label)
self.entry = TextInput()
layout.add_widget(self.entry)
self.button = Button(text="Greet")
self.button.bind(on_press=self.on_button_click)
layout.add_widget(self.button)
self.label_result = Label()
layout.add_widget(self.label_result)
return layout
def on_button_click(self, instance):
self.label_result.text = "Hello, " + self.entry.text
if __name__ == '__main__':
MyApp().run()
wxPython 走的是“原生界面”路线,它基于 wxWidgets C++ 库,生成的窗口看起来和操作系统自己的界面风格一致。如果你比较在意应用的外观是否符合当前桌面环境,wxPython 是一个很稳的选择。
安装方式:
pip install wxPython
简单的示例代码:
import wx
class MyFrame(wx.Frame):
def __init__(self, *args, **kw):
super(MyFrame, self).__init__(*args, **kw)
pnl = wx.Panel(self)
st = wx.StaticText(pnl, label="Enter your name:", pos=(20, 20))
self.tf = wx.TextCtrl(pnl, pos=(100, 15), size=(200, -1))
btn = wx.Button(pnl, label="Greet", pos=(100, 50))
self.lbl = wx.StaticText(pnl, label="", pos=(100, 80))
btn.Bind(wx.EVT_BUTTON, self.on_button_click)
self.SetSize((300, 200))
self.Centre()
def on_button_click(self, event):
self.lbl.SetLabel("Hello, " + self.tf.GetValue())
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame(None, title="wxPython Example", size=(300, 200))
frame.Show(True)
app.MainLoop()
以上就是 Ubuntu 下用 Python 创建图形界面的几种常见做法。它们各有擅长,选哪个主要看你的具体场景——是要快速原型、复杂桌面应用、跨平台触控,还是追求原生质感。从这几个入门开始,后面完全可以按需深入。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8