在Ubuntu上使用Python進行圖形界面(GUI)開發,你可以選擇多種庫和框架。以下是一些流行的選擇:
Tkinter是Python的標準GUI庫,它內置于Python中,因此無需額外安裝。
示例代碼:
import tkinter as tk
def on_button_click():
label.config(text="Hello, Tkinter!")
root = tk.Tk()
root.title("Tkinter Example")
label = tk.Label(root, text="Welcome to Tkinter")
label.pack()
button = tk.Button(root, text="Click Me", command=on_button_click)
button.pack()
root.mainloop()
PyQt是一個功能強大的Python綁定庫,用于Qt框架。它提供了豐富的控件和功能。
安裝PyQt5:
sudo apt-get install python3-pyqt5
示例代碼:
from PyQt5.QtWidgets import QApplication, QLabel, QPushButton, QVBoxLayout, QWidget
def on_button_click():
label.setText("Hello, PyQt!")
app = QApplication([])
window = QWidget()
window.setWindowTitle("PyQt Example")
layout = QVBoxLayout()
label = QLabel("Welcome to PyQt")
layout.addWidget(label)
button = QPushButton("Click Me")
button.clicked.connect(on_button_click)
layout.addWidget(button)
window.setLayout(layout)
window.show()
app.exec_()
Kivy是一個開源的Python庫,用于開發多點觸控應用程序。它適用于桌面、移動設備和嵌入式系統。
安裝Kivy:
sudo apt-get install python3-kivy
示例代碼:
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.boxlayout import BoxLayout
class MyApp(App):
def build(self):
layout = BoxLayout(orientation='vertical')
self.label = Label(text="Welcome to Kivy")
layout.add_widget(self.label)
button = Button(text="Click Me", on_press=self.on_button_click)
layout.add_widget(button)
return layout
def on_button_click(self, instance):
self.label.text = "Button Clicked!"
if __name__ == '__main__':
MyApp().run()
wxPython是另一個流行的Python GUI庫,它提供了跨平臺的GUI開發能力。
安裝wxPython:
sudo apt-get install python3-wxgtk4.0
示例代碼:
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="Welcome to wxPython", pos=(20, 20))
btn = wx.Button(pnl, label="Click Me", pos=(20, 50))
btn.Bind(wx.EVT_BUTTON, self.on_button_click)
self.Show(True)
def on_button_click(self, event):
wx.MessageBox("Button Clicked!", "Info", wx.OK | wx.ICON_INFORMATION)
if __name__ == '__main__':
app = wx.App(False)
frame = MyFrame(None, title="wxPython Example", size=(300, 200))
app.MainLoop()
選擇哪個庫取決于你的具體需求和偏好。Tkinter適合快速原型開發,PyQt5/PyQt6功能強大且靈活,Kivy適合多點觸控應用,而wxPython則提供了跨平臺的GUI開發能力。你可以根據項目需求和個人喜好選擇合適的庫進行開發。