顶级的Python GUI框架比较分析—(Tkinter vs PyQT 5 vs PySide vs Kivy)

10,211 阅读6分钟

在这篇文章中,你将了解到顶级的Python GUI框架,如何使用它们,以及它们之间的比较。但首先,让我们快速讨论一下什么是GUI框架,为什么它是编程的一个重要方面。

什么是GUI?

GUI是图形用户界面的首字母缩写。它是允许用户通过图形元素与电子设备互动的界面。

它是软件编程的一个重要方面,因为它允许人与计算机/电子设备之间的互动。简单地说,它用用户友好的动作取代了基于文本的命令--目标是为用户呈现易于使用的决策点和界面,这反过来又在软件应用中产生了良好的用户体验。

顶级的Python GUI框架

我们将在本文中讨论的顶级Python GUI框架是。

这些Python GUI框架是Python软件开发者最常用的框架。每一个都有其优点和缺点,我们将在下面介绍。

要继续阅读本文,你需要从Python官方网站上安装Python 3解释器。

Python Tkinter

Tkinter是Python的标准内置GUI库,在GitHub上有超过41,000颗星,是最受欢迎的Python GUI框架。它是一个快速且易于使用的Python GUI库,使其成为构建Python GUI应用程序的首选库。

安装Tkinter

Tkinter是一个内置的Python库,所以它预先安装在你的计算机上的Python安装中。不需要单独安装它。

Tkinter 一览表

Tkinter 提供了许多在 GUI 应用程序中经常使用的部件,如标签、按钮、复选框、文本框和画布 (用于绘制三角形、矩形、多边形等形状)。

下面是一个例子。

import Tkinter
mainApp = Tkinter.Tk()
# Add the codes for the widget here..
mainApp.mainloop()

当你运行上面的Python代码时,你会看到下面的情况。

Hello Tkinter World

在Python中使用Tkinter的优点

  • 它是Python的一部分,这意味着没有任何额外的东西需要下载
  • 它使用简单的语法
  • 文本和画布部件非常强大且易于使用
  • 它在Mac和Windows上使用本地部件

使用Tkinter的缺点

  • 它有时难以调试
  • 与其他框架不同,它的外观不是那么漂亮

PyQT 5

PyQT是一个Python GUI框架,围绕着流行的QT应用程序框架构建。它可以在许多平台上运行,包括Windows、macOS、Linux、iOS和Android。

安装PyQT

安装PyQT 5也很简单和直接。首先,我们创建一个虚拟环境。这是一个非常重要的步骤,建议在构建新的Python应用程序时采取。

要创建一个Python虚拟环境,打开你的终端,在你喜欢的目录中运行下面的命令。

​​Python -m virtualenv pyqt_venv

要激活虚拟环境,运行下面的命令。

source pyqt_venv/bin/activate

激活虚拟环境后,使用Python pip在虚拟环境中安装PyQT。要做到这一点,在你的终端运行下面的命令。

pip install pyqt5

使用PyQT

成功安装PyQT 5后,我们将继续编写一个小型的PyQT GUI应用程序,并设定高度和宽度。下面是我们的代码将是什么样子。

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel


def PyQT5App():
   app = QApplication(sys.argv)
   w = QWidget()
   b = QLabel(w)
   b.setText("Hello World!")
   w.setGeometry(500, 500, 1000, 500)
   b.move(450, 240)
   w.setWindowTitle("PyQt5")
   w.show()
   sys.exit(app.exec_())


if __name__ == '__main__':
   PyQT5App()

运行上面的代码后,你应该看到下面的情况。

Hello World

使用PyQT的优点

  • 更好的文档
  • 更加方便用户使用
  • 提供更多的UI组件

PyQT的缺点

  • 学习曲线很陡,因为它有组件,需要时间来学习它
  • 如果你的应用程序不是开源的,你必须支付一个商业许可。

PySide6

PySide6,被称为QT for Python,是一个绑定了QT框架的Python GUI框架。PySide提供了对所有由QT提供的GUI组件和工具的访问。

PySide的安装

Pyside可以使用Python pip轻松安装。就像我们对其他框架所做的那样,我们首先需要创建一个虚拟环境。

打开你的终端,在你喜欢的目录下运行下面的命令。

​​Python -m virtualenv pyside_venv

为了激活虚拟环境,运行下面的命令。

source pyside_venv/bin/activate

现在,通过在终端运行下面的命令,使用Python pip在虚拟环境中安装PySide6。

pip install PySide6

PySide的例子

让我们来看看一个简单的PySide应用程序。

import sys
from PySide.QtCore import Qt
from PySide6.QtWidgets import (QApplication, QLabel,
                              QVBoxLayout, QWidget)
from __feature__ import snake_case, true_property


class PySideApp(QWidget):
   def __init__(self):
       QWidget.__init__(self)

       self.message = QLabel("Hello PySide World!")
       self.message.alignment = Qt.AlignCenter

       self.layout = QVBoxLayout(self)
       self.layout.add_widget(self.message)


if __name__ == "__main__":
   app = QApplication(sys.argv)

   widget = PySideApp()
   widget.show()

   sys.exit(app.exec())

运行上面的代码,得到这个输出。

Hello Pyside World

PySide的优点

  • PySide可以跨平台使用,并且比其他Python GUI框架拥有更广泛的社区支持。
  • 它提供了比其他框架更好的文档,包括教程、例子、视频指南等。
  • 被包括梅赛德斯、TomTom和诺基亚在内的大型组织使用

PySide的缺点

  • 需要商业许可

Kivy

Kivy是一个开源的Python GUI框架,可运行于Linux、Windows、OS X、Android、iOS和Raspberry Pi。Kivy是最稳定的Python GUI框架之一,它提供了一个API和详尽的文档和指南,便于使用和设置。值得注意的是,Kivy是用Python和Cython编写的。

安装Kivy

有多种方法来安装Kivy,这因你使用的平台而异。在这篇文章中,我们将用Python pip安装Kivy。要了解其他安装Kivy的方法,你可以查看这里的安装页面。

在安装Kivy之前,让我们为Kivy项目创建一个虚拟环境。

要做到这一点,请打开你的终端,在你喜欢的目录下运行下面的命令。

​​Python -m virtualenv kivy_venv

为了激活虚拟环境,运行下面的命令。

source kivy_venv/bin/activate

激活我们的虚拟环境后,你可以使用Python pip在你的虚拟环境中安装Kivy预编译轮。要做到这一点,在你的终端运行下面的命令。

pip install kivy

在你的应用程序中使用Kivy

在这一点上,你已经成功地安装了Kivy。就像Tkinter一样,Kivy也提供了许多小工具。下面是一个简单的Kivy应用程序的例子。

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


class HelloWorldApp(App):
   def build(self):
       return Button(text="Hello Kivy World")


HelloWorldApp().run()

运行上面的代码后,你会看到下面的窗口。

Hello Kivy World

Kivy的优点

  • 支持多个平台,包括移动平台
  • 使用Kivy,你只需要写一次代码,因为你可以在多个设备上使用它
  • 小部件很容易使用,支持多点触摸

使用Kivy的缺点

  • 它没有提供一个原生的用户界面
  • 社区和采用率相对较小
  • 因为包含了Python解释器,所以其包的大小总是很大。

总结

关于这些Python GUI框架,有必要注意一些事情。Tkinter和Kivy是免费的库,所以你可以在你的任何Python项目中使用它们。

然而,PyQT和PySide则需要你获得许可,以使你的项目商业化。另外,Tkinter是一个内置的Python库,而其他三个库需要你安装它们才能使用。

在了解了一些常见的Python GUI框架,如PySide、PyQT、Kivy和Tkinter之后,你现在应该能够为你的Python项目决定最佳框架了。

我希望在下面的评论区听到你对Python GUI框架的看法以及你经常使用的框架。

The postComparing the top Python GUI frameworksappeared first onLogRocket Blog.