图形用户界面(简称 GUI)是你通过屏幕上的图标和菜单与计算机交互的方式,而不是在命令行提示符中输入命令。
GUI 框架为开发人员提供了各种窗口和其他图形元素,他们可以与之交互以提供用户友好的体验。随着 Python 的日益普及、平滑的学习曲线和在现实世界中的广泛采用,Python开发者数量也在不断攀升。在掌握 Python 编程基础后不久,初学者面临的下一个挑战是构建用户界面。
幸运的是,有很多 Python 框架可以帮助开发人员构建令人惊叹且高度直观的用户界面。
本文将介绍Python的5大GUI框架,如果你想用Python进行GUI编程,正在寻找合适自己的Python框架,那么本文会给你提供帮助。
开发者: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 构建。
要安装 pyqt5,请运行以下 pip Python 命令:
pip install 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 和 Qt 设计器进行 Python GUI 开发
https://www.koudaizy.com/tutorials/python-gui-development-with-pyqt6/
开发者: 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开发课程:Tkinter Python 和 Python GUI构建真正的 Tkinter 应用程序
https://www.koudaizy.com/tutorials/tkinter-python-python-gui-with-real-tkinter-applications/
开发者: Kivy
网站链接:https://kivy.org
Kivy 是一个跨平台的 GUI 库,用于在 Python 中使用多点触控界面开发多媒体应用程序。Kivy 允许小部件跨多个平台工作,而无需编写任何本机代码。
Kivy 的图形引擎基于 OpenGL ES 2 构建,使用现代且快速的图形管道,这使得该框架适用于 iOS 和 Android 应用程序的设计者。主要优点是用户界面可以用纯 Python 编写。这意味着不需要 C++ 知识,与其他框架相比,开销很小。
Kivy 最初是为在 Raspberry Pi 和其他低功耗和嵌入式设备上工作而开发的,现在,它的更多功能可以在更强大的台式计算机上使用。它的重点是图形渲染、动画、包装、用户交互等。Kivy 也是一个框架,它提供了大量用于显示数据和与用户交流的小部件。
要安装 Kivy,请在终端中运行以下命令:
pip install 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()
开发作者:Robin Dunn
网站链接:https ://www.wxpython.org/
wxPython 是一个 Python GUI 工具包,用 C++ 编写,可以跨平台。它是一个由 wxWidgets 团队维护的开源项目。作为更大的 wxWidgets 项目的一部分,它被设计为与 Windows 和 Linux 开发环境兼容。
这个库的主要目标是为 Python 开发人员提供用于他们的 GUI 应用程序的高质量小部件。这包括文本框、复选框、按钮文本、列表视图和其他标准组件等原生控件,也包括框架或对话框等更复杂的组件。此外,还有许多其他可用功能,包括拖放支持、文件浏览、打印、剪贴板操作、国际化等。
该库还包括大量用于轻松构建 GUI 的入口小部件。此外,它还支持许多其他功能,例如事件处理、线程、国际化和其他许多其他框架中没有的高级功能。这些特性使 WxPython 成为当今最流行的 GUI 工具包之一。
要安装 wxPython,请在终端中运行以下命令:
pip install wxPython
import wx
app = wx.App()
frame = wx.Frame(parent=None, title='wxPython Window Example')
frame.Show()
app.MainLoop()
开发者: Qt 公司
网站链接:https ://www.qt.io/qt-for-python
PySide是Qt 官方的库,允许你使用 PyQt 或 PySide 组件编写应用程序。与 wxWidgets 等其他替代工具相比,该工具包的主要优势在于它能够嵌入到任何 C++ 项目中,而无需额外的依赖项。它还提供了许多有用的小部件来创建用户界面。
要安装 Pyside,请在终端中运行以下命令:
pip install PySide6
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_()
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 则介于两者之间。