GUI工具箱包含用于创建图形界面的部件。Python包括一系列可用的界面实现,从TkInter(它自带Python,)到各种不同的跨平台解决方案,如PyQt5,它以更复杂的小部件和时尚的外观而闻名。

PyQt

PyQt是一个用于图形用户界面(GUI)小工具的工具包。它是从Qt的库中提取的。PyQt是Python语言和Qt库结合的产物。PyQt是与Qt Builder一起出现的。我们将用它来从Qt Creator中获取Python代码。在Qt设计器的支持下,我们可以建立一个GUI,然后我们可以为这个GUI获得python代码。PyQt支持所有平台,包括Windows、macOS和UNIX。PyQt可以用来创建时尚的GUI,一个现代的、可移植的python框架。

# Import sys for handle the
# exit status of the application.
import sys

# Importing required widgets
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QLabel
from PyQt5.QtWidgets import QWidget

# To create an instance of QApplication
# sys.argv contains the list of
# command-line argument
app = QApplication(sys.argv)

# To create an instance of application GUI
# root is an instance of QWidget,
# it provides all the features to
# create the application's window
root = QWidget()

# adding title to window
root.setWindowTitle('PyQt5 App')

# to place txt at the coordinates
root.move(60, 15)

# to display text
txt = QLabel('Welcome, Yiibai!', parent = root)
txt.move(60, 15)

# Show application's GUI
root.show()

# Run application's main loop
sys.exit(app.exec_())

使用PyQt的优势

  • 编码的多样性 – 使用Qt的GUI编程是围绕着信号和槽的概念来创建对象之间的联系。这使得处理GUI事件时具有多样性,从而使代码基础更加顺畅。
  • 不仅仅是一个框架:Qt在网络、数据库开发等方面使用了大量的本地平台API。它通过一个特殊的API提供对它们的主要访问。
  • 各种UI组件:Qt提供了多种小部件,如按钮或菜单,都是为所有兼容平台设计的基本界面。
  • 各种学习资源:由于PyQt是Python最常用的UI系统之一,可以方便地访问各种各样的文档。

使用PyQt的劣势

  • PyQt5中缺乏针对Python的类的文档
  • 要掌握PyQt的所有具体细节需要很多时间,这意味着这是一个相当陡峭的学习曲线。
  • 如果应用程序不是开源的,必须支付商业许可。

Tkinter

Tkinter是一个开源的Python图形用户界面(GUI)库,以其简单性而闻名。它预先安装在Python中,所以甚至不需要考虑安装它。这些特点使它成为初学者和中级用户开始使用的有力条件。Tkinter不能用于较大规模的项目。

示例代码:

# importing the module tkinter
import tkinter as tk

# create main window (parent window)
root = tk.Tk()

# Label() it display box
# where you can put any text.
txt = tk.Label(root, text="Welcome to Yiibai Geek")

# pack() It organizes the widgets
# in blocks before placing in the parent widget.
txt.pack()

# running the main loop
root.mainloop()

使用Tkinter的优点

  • 与其他GUI工具包相比,Tkinter实现起来简单而快速。
  • Tkinter更加灵活和稳定。
  • Tkinter包含在Python中,所以不需要额外下载。
  • Tkinter 提供了一个简单的语法。
  • Tkinter真的很容易理解和掌握。
  • Tkinter提供了三种几何图形管理器:放置、打包和网格。这是更强大和更容易使用的。

使用Tkinter的缺点

  • Tkinter不包括高级部件。
  • Tkinter没有类似于Qt Designer for Tkinter的工具。
  • Tkinter没有一个可靠的用户界面。
  • 有时,在Tkinter中很难进行调试。
  • Tkinter不是纯粹的Pythonic。

PyQt和Tkinter的区别:

编号 基础 PyQt Tkinter
1 许可 PyQt在Riverbank商业许可和GPL v3(General Public License v 3.0)下可用,如果你不希望在与GPL兼容的许可下发布你的应用程序,你必须申请一个商业许可。 Tkinter是开源的,可免费用于任何商业用途。
2 易于理解 需要大量的时间来理解PyQt的所有细节。 Tkinter由于是一个小库,所以很容易理解和掌握。
3 设计 PyQt有一个现代的外观和良好的用户界面。 Tk的设计较老,看起来很过时。
4 小工具 PyQt带有许多强大而先进的小工具。 TkInter没有先进的小工具。
5 UI Builder PyQt有一个Qt Designer工具,我们可以用它来建立GUI,然后用Qt Designer获得GUI的python代码。 它没有类似于Tkinter的Qt Designer的工具。
6 安装 PyQt默认不包括在Python安装中。 它被包含在标准的Python库中,所以不需要单独安装它。