商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > ubuntu下python图形界面怎么做

ubuntu下python图形界面怎么做

  发布于2026-07-16 阅读(0)

扫一扫,手机访问

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

ubuntu下python图形界面怎么做

1. Tkinter

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()

2. PyQt5

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_())

3. Kivy

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()

4. wxPython

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 创建图形界面的几种常见做法。它们各有擅长,选哪个主要看你的具体场景——是要快速原型、复杂桌面应用、跨平台触控,还是追求原生质感。从这几个入门开始,后面完全可以按需深入。

本文转载于:https://www.yisu.com/ask/3152078.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注