Ubuntu Python GUI应用如何开发
发布于2026-07-19 阅读(0)
在Ubuntu上捣鼓Python GUI开发,其实有不少现成的图形库可以选。下面就把几个主流的库拎出来聊一聊,顺便给点安装和入门的小示例,方便你快速上手。
## Tkinter
Tkinter是Python自带的标配GUI库,轻量又好用,适合快速搭个简单的窗口程序。大多数情况下,Python安装完就已经自带Tkinter了,不过万一没装,补上也很简单:
```bash
sudo apt-get install python3-tk
```
写个最基础的例子看看效果:
```python
import tkinter as tk
def on_button_click():
label.config(text="Hello, " + entry.get())
root = tk.Tk()
root.title("Tkinter App")
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()
label_result = tk.Label(root, text="")
label_result.pack()
root.mainloop()
```
## PyQt5 / PySide2
如果觉得Tkinter的界面不够“现代”,或者需要更丰富的组件、更复杂的布局,PyQt5和PySide2就是很好的选择。它们功能强大,能做出跟原生桌面应用几乎一模一样的界面。安装也很直接:
```bash
# PyQt5
sudo apt-get install python3-pyqt5
# PySide2
sudo apt-get install python3-pyside2
```
下面是一个PyQt5的简单示例:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QVBoxLayout
def on_button_click():
label.setText("Hello, " + line_edit.text())
app = QApplication([])
window = QWidget()
window.setWindowTitle('PyQt5 App')
layout = QVBoxLayout()
label = QLabel('Enter your name:')
layout.addWidget(label)
line_edit = QLineEdit()
layout.addWidget(line_edit)
button = QPushButton('Greet')
button.clicked.connect(on_button_click)
layout.addWidget(button)
label_result = QLabel()
layout.addWidget(label_result)
window.setLayout(layout)
window.show()
app.exec_()
```
## Kivy
要是你的应用需要跨平台(比如同时跑在Windows、macOS、Linux、甚至Android/iOS上),或者想支持多点触控,那Kivy就派上用场了。它是一个开源库,专门为多点触控和移动端场景设计。
安装Kivy:
```bash
sudo apt-get install python3-kivy
```
一个简单的Kivy示例:
```python
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
class TestApp(App):
def build(self):
self.layout = BoxLayout(orientation='vertical')
self.label = Label(text="Hello, World!")
self.button = Button(text="Click Me")
self.button.bind(on_press=self.on_button_press)
self.layout.add_widget(self.label)
self.layout.add_widget(self.button)
return self.layout
def on_button_press(self, instance):
self.label.text = "Hello, " + self.button.text
if __name__ == '__main__':
TestApp().run()
```
## 怎么选?
说到底,选哪个库要看你的具体场景。如果只是做个简单的小工具,Tkinter完全够用,而且几乎零依赖。需要更专业的界面、更丰富的控件,PyQt5/PySide2是行业主流。追求跨平台和触控交互,Kivy则是不二之选。刚入门的话,从Tkinter开始熟悉GUI编程的基本逻辑,再根据需求升级到PyQt或Kivy,这条路通常比较顺畅。
本文转载于:https://www.yisu.com/ask/67548596.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。