2022 面向开发人员的 5 大 Python GUI 框架

图形用户界面(简称 GUI)是你通过屏幕上的图标和菜单与计算机交互的方式,而不是在命令行提示符中输入命令。

GUI 框架为开发人员提供了各种窗口和其他图形元素,他们可以与之交互以提供用户友好的体验。随着 Python 的日益普及、平滑的学习曲线和在现实世界中的广泛采用,Python开发者数量也在不断攀升。在掌握 Python 编程基础后不久,初学者面临的下一个挑战是构建用户界面。

幸运的是,有很多 Python 框架可以帮助开发人员构建令人惊叹且高度直观的用户界面。

本文将介绍Python的5大GUI框架,如果你想用Python进行GUI编程,正在寻找合适自己的Python框架,那么本文会给你提供帮助。

1.PyQt6

开发者:Riverbank Computing

网站链接:https://riverbankcomputing.com/software/pyqt/intro

PyQt 包是围绕 Qt 框架 构建的,这是一个跨平台框架,用于为各种平台创建大量应用程序。PyQt6 包包含一组详细的 Python 绑定,基于 Qt 应用程序框架的最新版本 v6。

与 Qt6 框架类似,PyQt6 也是完全跨平台的。通过利用 PyQt6 的强大功能,开发人员可以为 Windows、Mac、Linux、iOS、Android 等平台构建应用程序。 在创建 GUI 时,PyQt6 武器库提供了令人印象深刻的QtGui和QtDesigner 模块,它们提供了许多视觉元素,开发人员可以通过简单的拖放来实现。

当然,也可以选择通过代码创建这些元素,让你轻松创建小型和大型应用程序。Python 的模块化以扩展的形式渗透到 PyQt6,为你提供更多功能,而不仅仅是 GUI 构建。

PyQt6 安装

要安装 pyqt5,请运行以下 pip Python 命令:

pip install pyqt6

PyQT6 代码示例

from PyQt6.QtWidgets import QApplication, QMainWindow
import sys
class Window(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setGeometry(200, 400, 400, 200)
        self.setWindowTitle('PyQt6 Window Example')
        self.show()
app = QApplication(sys.argv)
window = Window()
sys.exit(app.exec())

PyQT6 的优点

  • 它非常用户友好。
  • 它有大量的文档。
  • 它有大量可供选择的小部件。

PyQT6 的缺点

  • 如果你要创建商业应用程序,则必须支付商业许可证费用。
  • 由于它附带的所有组件,它有一个陡峭的学习曲线。

使用 PyQt6 和 Qt 设计器进行 Python GUI 开发

https://www.koudaizy.com/tutorials/python-gui-development-with-pyqt6/

2.Tkinter

开发者: Fredrik Lundh

网站链接:https ://wiki.python.org/moin/TkInter

Tkinter 是一个跨平台的小部件集,用于创建用 Python 编写的图形用户界面。Tkinter 模块提供了大量功能,包括几何管理器、自定义小部件、主题支持和 Unicode 文本处理。Tkinter 旨在易于使用,同时仍提供与其他 GUI 工具包相当的功能。

对于没有 GUI 构建经验的开发人员,Tkinter 可能是开始使用 Python 构建自己的应用程序的好方法。它提供了许多开箱即用的功能,非常适合原型设计或小型项目,并且不需要你投入大量时间。但是,这是以自定义选项有限为代价的。

如果你的项目需要比 Tkinter 提供的更高级的功能,那么 PyQt6 等更高级的框架会更有帮助。

Tkinter 代码示例

from tkinter import *
class Root(Tk):
    def __init__(self):
        super(Root,self).__init__()
        self.title('Tkinter Window Example')
        self.minsize(500,400)
root = Root()
root.mainloop ()

Tkinter 的优点

  • 它随每个 Python 安装一起提供,因此你无需安装任何额外的 Python 包。
  • 它带有画布和文本小部件,可让你使用 GUI 执行强大的操作。
  • 它具有简单的语法并且易于使用。
  • 在 Mac OSX 和 Microsoft Windows 上,它使用本机小部件。

Tkinter 的缺点

  • 可能很难调试。
  • GUI 应用程序可能不像使用其他 GUI 框架构建的应用程序那样“漂亮”

Tkinter开发课程:Tkinter Python 和 Python GUI构建真正的 Tkinter 应用程序

https://www.koudaizy.com/tutorials/tkinter-python-python-gui-with-real-tkinter-applications/

3.Kivy

开发者: Kivy

网站链接:https://kivy.org

Kivy 是一个跨平台的 GUI 库,用于在 Python 中使用多点触控界面开发多媒体应用程序。Kivy 允许小部件跨多个平台工作,而无需编写任何本机代码。

Kivy 的图形引擎基于 OpenGL ES 2 构建,使用现代且快速的图形管道,这使得该框架适用于 iOS 和 Android 应用程序的设计者。主要优点是用户界面可以用纯 Python 编写。这意味着不需要 C++ 知识,与其他框架相比,开销很小。

Kivy 最初是为在 Raspberry Pi 和其他低功耗和嵌入式设备上工作而开发的,现在,它的更多功能可以在更强大的台式计算机上使用。它的重点是图形渲染、动画、包装、用户交互等。Kivy 也是一个框架,它提供了大量用于显示数据和与用户交流的小部件。

基维安装

要安装 Kivy,请在终端中运行以下命令:

pip install Kivy

Kivy 代码示例

from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
    def build(self):
        self.title = 'Kivy Window Example'
        return Button(text='Hello Kivy World!')
TestApp().run()

Kivy 的优点

  • 它支持桌面和移动平台。
  • 你只需编写一次代码,它就会为所有支持的平台编译应用程序。
  • 这些小部件具有内置的多点触控支持。

Kivy 的缺点

  • Kivy 有自己的小部件,用它创建的应用程序看起来不像原生应用程序。
  • 它不像此列表中的其他框架那样受欢迎,并且社区较小。
  • Kivy 包很大,因为 Python 解释器是内置的。

4.wxPython

开发作者:Robin Dunn

网站链接:https ://www.wxpython.org/

wxPython 是一个 Python GUI 工具包,用 C++ 编写,可以跨平台。它是一个由 wxWidgets 团队维护的开源项目。作为更大的 wxWidgets 项目的一部分,它被设计为与 Windows 和 Linux 开发环境兼容。

这个库的主要目标是为 Python 开发人员提供用于他们的 GUI 应用程序的高质量小部件。这包括文本框、复选框、按钮文本、列表视图和其他标准组件等原生控件,也包括框架或对话框等更复杂的组件。此外,还有许多其他可用功能,包括拖放支持、文件浏览、打印、剪贴板操作、国际化等。

该库还包括大量用于轻松构建 GUI 的入口小部件。此外,它还支持许多其他功能,例如事件处理、线程、国际化和其他许多其他框架中没有的高级功能。这些特性使 WxPython 成为当今最流行的 GUI 工具包之一。

wxPython 安装

要安装 wxPython,请在终端中运行以下命令:

pip install wxPython

wxPython 代码示例

import wx
app = wx.App()
frame = wx.Frame(parent=None, title='wxPython Window Example')
frame.Show()
app.MainLoop()

wxPython 的优点

  • 它有大量可供选择的小部件。
  • wxPython 对象是一流的 Python 对象。
  • 用它构建的应用程序具有原生的外观和感觉。

wxPython 的缺点

  • 由于 wxPython 开发非常活跃,因此 API 经常会出现错误和更改。
  • 版本更新不是很快

5.PySide6

开发者: Qt 公司

网站链接:https ://www.qt.io/qt-for-python

PySide是Qt 官方的库,允许你使用 PyQt 或 PySide 组件编写应用程序。与 wxWidgets 等其他替代工具相比,该工具包的主要优势在于它能够嵌入到任何 C++ 项目中,而无需额外的依赖项。它还提供了许多有用的小部件来创建用户界面。

Pyside 安装

要安装 Pyside,请在终端中运行以下命令:

pip install PySide6

Pyside 代码示例

from PySide6.QtWidgets import QtWidgets, QApplication
import sys
class Window(QtWidgets):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('Pyside2 Window Example')
        self.setGeometry(300,300,500,400)
app = QApplication(sys.argv)
window=Window()
window.show()
app.exec_()

Pyside 的优点

  • 它可以跨平台使用。
  • 它具有 PyQt 的许多功能,无需商业许可。
  • 它很受大型科技公司的欢迎和使用。

Pyside 的缺点

  • 学习资料少(看PyQt的资料其实一样的)
  • 官方文档不是很健全

结论

Tkinter、WxPython、PySide 和 Kivy 是可以在任何程序中使用的免费 Python 库。Tkinter 包含在标准 Python 库中,不需要任何额外安装,而其他四个需要单独安装。

另外你要知道的是,PyQt是GPLv3协议,PyQT 需要许可证才能在商业项目中使用它。而PySide是LGPL协议,可以自由使用。

PyQt和PySide都包装了同一个库 Qt6,因此它们有 99.9% 的 API 是相同的,绝大部分时候,它们的代码是可以互相复用的。

如果刚开始学习,建议选用PyQt,资源丰富,文档健全,学习起来比较省心。后面如果要开发商业程序,转到PySide成本也很低。

最后,具体选择哪种 GUI 框架取决于你的需求和偏好。Tkinter 是最容易学习和使用的,具有适中的学习曲线和广泛的功能。wxPython 更复杂但也更强大。PyQt 和 Pyside 则介于两者之间。

你可能感兴趣的:(python,开发语言)