当前位置:首页>python>【小沐学Python】从0到1做桌面软件,看完这篇就够了!Python 界面开发(六)

【小沐学Python】从0到1做桌面软件,看完这篇就够了!Python 界面开发(六)

  • 2026-09-12 08:33:31
【小沐学Python】从0到1做桌面软件,看完这篇就够了!Python 界面开发(六)

小沐:戈戈,你知道春秋战国时期诸子百家的故事吗?那时候各种学派争鸣,真是思想繁荣的黄金时代啊! 

戈戈:当然知道,儒家、道家、墨家、法家...各派学者各抒己见,形成了著名的"百家争鸣"。 

小沐:听起来和我们现在选择Python界面开发框架有点像,每个框架都有自己的特点和适用场景。 

戈戈:没错!虽然领域不同,但那种百花齐放、选择多样的感觉是一样的。今天我就给你介绍介绍Python界的"百家争鸣"——各种GUI框架! 

小沐:太好了,我正想了解这个呢!

1、简介

在Python的世界里,图形用户界面(GUI)开发是一个非常有趣的领域。通过GUI,我们可以将命令行程序转换为直观的窗口应用程序,让用户能够通过点击按钮、输入框等控件与程序进行交互。Python提供了丰富的界面开发库,让我们能够轻松创建各种桌面应用程序。

2、Tkinter

Tkinter是Python标准库中自带的GUI模块,无需额外安装即可使用。它是Python内置的图形界面库,继承自Tcl/Tk工具包。Tkinter的优势在于简单易学、代码量少,非常适合初学者入门GUI编程。如果你想快速创建一个简单的桌面应用,Tkinter是一个不错的选择。

https://docs.python.org/3/library/tkinter.html

命令行安装如下:

pip install tk

下面是一段python + Tkinter界面代码示例。

import tkinter as tk
from tkinter import ttk

# 创建主窗口
root = tk.Tk()
root.title("Tkinter 示例")
root.geometry("300x200")

# 创建标签
label = ttk.Label(root, text="欢迎使用 Tkinter!", font=("Arial", 14))
label.pack(pady=20)

# 创建按钮
defon_click():
    label.config(text="按钮被点击了!")

button = ttk.Button(root, text="点击我", command=on_click)
button.pack(pady=10)

# 运行主循环
root.mainloop()

代码运行结果如下:

3、PyQt / PySide

PyQt和PySide是基于Qt框架的Python绑定库。Qt是一个功能非常强大的跨平台GUI库,被广泛应用于桌面应用开发。使用PyQt/PySide,你可以创建出专业级别的桌面应用程序,拥有现代化的界面风格和丰富的控件。不过需要注意的是,PyQt和PySide 采用了不同的许可证,开发时需要注意版权问题。

https://doc.qt.io/qtforpython-6/ https://www.qt.io/zh-cn/qt-for-python

命令行安装如下:

pip install PyQt6
pip install PySide6

下面是一段python + PyQt界面代码示例,包含了QSS样式美化:

import sys
from PyQt6.QtWidgets import QApplication, QMainWindow, QLabel, QPushButton, QVBoxLayout, QWidget
from PyQt6.QtCore import Qt

classMainWindow(QMainWindow):
def__init__(self):
        super().__init__()
        self.setWindowTitle("PyQt6 示例")
        self.setGeometry(100, 100, 300, 200)

# 创建中心部件和布局
        central_widget = QWidget()
        self.setCentralWidget(central_widget)
        layout = QVBoxLayout()
        central_widget.setLayout(layout)

# 创建标签
        label = QLabel("欢迎使用 PyQt6!", self)
        label.setStyleSheet("font-size: 14px;")
        label.setAlignment(Qt.AlignmentFlag.AlignCenter)
        layout.addWidget(label)

# 创建按钮
        button = QPushButton("点击我", self)
        button.clicked.connect(self.on_click)
        layout.addWidget(button)

# 添加QSS样式美化界面
        self.setStyleSheet("""
            QMainWindow {
                background-color: 
#f0f0f0;
            }
            QLabel {
                color: #333333;
                font-weight: bold;
            }
            QPushButton {
                background-color: #0078d7;
                color: white;
                border: none;
                padding: 8px 16px;
                border-radius: 4px;
                font-size: 12px;
            }
            QPushButton:hover {
                background-color: #005a9e;
            }
            QPushButton:pressed {
                background-color: #004578;
            }
        """)

defon_click(self):
        self.centralWidget().layout().itemAt(0).widget().setText("按钮被点击了!")

if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec())

代码运行结果如下:

4、wxPython

wxPython是wxWidgets库的Python封装,也是一个跨平台的GUI开发框架。它的特点是在不同操作系统上都能呈现出原生风格的界面,让应用程序看起来就像是为该平台专门设计的。如果你希望你的应用在Windows、Mac和Linux上都能有native的视觉效果,wxPython值得考虑。

https://docs.wxpython.org/

命令行安装如下:

pip install wxpython

下面是一段python + wxPython界面代码示例:

import wx

# 创建应用程序对象
app = wx.App()

# 创建窗口
frame = wx.Frame(None, title="Hello wxPython", size=(300, 200))
panel = wx.Panel(frame)
text = wx.StaticText(panel, label="Hello, wxPython!", pos=(90, 80))

# 显示窗口
frame.Show()
app.MainLoop()

代码运行结果如下:

5、Dear PyGui

Dear PyGui是一个基于GPU加速的现代GUI库,专为游戏开发、数据可视化和实时应用程序设计。它的渲染速度非常快,界面风格现代简洁。如果你需要开发高性能的实时界面,或者正在制作游戏工具,Dear PyGui是一个很好的选择。

https://github.com/hoffstadt/DearPyGui

命令行安装如下:

pip install dearpygui

下面是一段python + Dear PyGui界面代码示例:

import dearpygui.dearpygui as dpg

defsave_callback():
    print("Save Clicked")

# 创建上下文
dpg.create_context()

# 创建视口
dpg.create_viewport()

# 设置 Dear PyGui
dpg.setup_dearpygui()

# 创建窗口
with dpg.window(label="Example Window"):
    dpg.add_text("Hello world")
    dpg.add_button(label="Save", callback=save_callback)
    dpg.add_input_text(label="string")
    dpg.add_slider_float(label="float")

# 显示视口并运行
dpg.show_viewport()
dpg.start_dearpygui()
dpg.destroy_context()

代码运行结果如下:

6、kivy

Kivy是一个专注于多点触控和移动应用的Python框架。虽然它也可以用于桌面开发,但真正的亮点在于跨平台移动应用开发。使用Kivy,你可以用Python代码同时为iOS、Android、Windows、Mac和Linux创建应用,真正实现"一次编写,多平台运行"的梦想。

https://kivy.org/

命令行安装如下:

pip install kivy

下面是一段python + kivy界面代码示例:

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout

classMyApp(App):
defbuild(self):
# 创建垂直布局
        layout = BoxLayout(orientation='vertical', padding=20, spacing=10)

# 创建标签
        label = Button(text="Welcome to Kivy!", size_hint_y=None, height=50, disabled=True)
        layout.add_widget(label)

# 创建按钮
        button = Button(text="Click Me", size_hint_y=None, height=50)
        button.bind(on_press=self.on_button_press)
        self.label = label  # 保存引用
        layout.add_widget(button)

return layout

defon_button_press(self, instance):
        self.label.text = "Button Clicked!"

if __name__ == "__main__":
    MyApp().run()

代码运行结果如下:

小沐:戈戈,谢谢你帮我介绍了Python界面开发的"百家争鸣"!这感觉就像回到了春秋战国时代,每个框架都有自己的"门派"和"绝技"。

 戈戈:是的,无论是Tkinter这样的"儒家"——中规中矩、入门首选,还是PyQt这样的"法家"——功能强大、适合复杂应用,都是Python GUI世界的重要组成部分。 

小沐:我会根据自己的需求,选择最合适的"门派"来学习,就如同选择一个最适合自己的"道"来修行。 

戈戈:正是如此!选择好了就潜心修炼吧,编程之道重在实践。

结语

如果您觉得这些文字有一点点用处,请给作者点个赞或关个注;╮( ̄▽ ̄)╭
如果您有技术问题探讨,评论处留言。//(ㄒoㄒ)//
谢谢各位童鞋们啦( ´ ▽ ` )ノ ( ´ ▽ `` )っ!
更多精彩文章详见:
1、微信公众号:杨小羊爱阅读
2、CSDN博客:爱看书的小沐

最新文章

随机文章