在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 GUI库,基于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 = "Hello, Kivy!" if __name__ == '__main__': MyApp().run() wxPython是另一个流行的Python GUI库,基于wxWidgets框架。
安装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): self.GetParent().GetChildren()[1].SetLabel("Hello, wxPython") if __name__ == '__main__': app = wx.App(False) frame = MyFrame(None, title="wxPython Example", size=(300, 200)) app.MainLoop() 选择哪个库取决于你的具体需求和偏好。