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

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

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

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

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

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

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

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课程推荐

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

【Udemy课程 + 中英文字幕】

使用 PyQt6 和 Qt Design进行 Python GUI 开发

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课程推荐

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

【Udemy课程 + 中英文字幕】

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 则介于两者之间。

如果本站的内容对你有帮助,可以点击这儿,不花一分钱捐赠本站

(0)
疯狂的小黑疯狂的小黑
上一篇 2022年7月18日 下午11:00
下一篇 2022年7月27日 下午7:52

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

微信