Python中创建GUI的方法:PySimpleGUI的易用性与功能示例
在 Python 里创建图形用户界面(GUI)存在着多种途径。每种途径都具备其特有的优势以及适用的场合。以下这些是几种较为流行且行之有效的方法,它们能够协助你挑选出最为契合的 GUI 框架。

PySimpleGUI
PySimpleGUI简化了创建 GUI 的过程,它通过包装 Tkinter、Qt、WxPython 和 Remi 来实现。使用它创建界面只需较少的代码。
功能包含多种小部件,像文本框、按钮、滑块等。能够通过嵌套元素迅速构建出复杂的布局。
示例:
import PySimpleGUI as sg
layout 包含了[sg.Text('Hello, world!')]这个元素。sg.Text('Hello, world!')在 layout 中。layout 由[sg.Text('Hello, world!')]组成。layout 当中有[sg.Text('Hello, world!')]。[sg.Text('Hello, world!')]处于 layout 之中。
[sg.Button('OK')]]
创建了一个名为“Demo”的窗口,其布局为 layout,该窗口被赋值给变量 window 。
while True:
event, values = window.read()
如果事件等于 sg.WIN_CLOSED 或者事件等于“OK”:
break
window.close()
PySimpleGUI 拥有丰富的文档,并且提供了示例,这些文档和示例能够帮助你快速开始使用它。
Python 教程 - Real Python
(PyPI)
(Opensource.com)
PyQt和PySide
PyQt 为 Qt 应用程序框架提供了一组 Python 的绑定。它能够让你创建跨平台的应用程序。它的文档十分详尽。它还提供了多种小部件和工具,用于构建复杂的图形用户界面(GUI)。
PySide(即 Qt for Python):PySide 如同 PyQt 一样,也为 Qt 框架提供了绑定。并且它是由 Qt 项目官方给予支持的,其 API 与 PyQt 相近。
示例:
在 PyQt5 的 QtWidgets 模块中,包含了 QApplication、QWidget 和 QLabel 这几个类。
import sys
app = QApplication(sys.argv)
window = QWidget()
label 是一个 QLabel ,它的内容为 'Hello, world!' ,并且它的父窗口是 window 。
设置窗口的几何形状,横坐标为 100,纵坐标为 100,宽度为 280,高度为 80。
设置窗口标题为“PyQt Demo”。
window.show()
sys.exit(app.exec_())
PyQt 和 PySide 的优点是功能强大,缺点是学习曲线较陡,并且非开源项目需要商业许可。
(Python GUIs)
(LogRocket Blog)
Kivy
Kivy 是一个开源的 Python 库,适用于移动和触控界面。它专注于快速开发应用程序,这些应用程序使用创新的用户界面,比如多点触控应用。
功能包括支持多点触控事件以及手势,并且适用于 Android、iOS、Linux、OS X 和 Windows。
示例:
from kivy.app import App
Kivy 的 uix 模块中的 Label 类来自于 kivy.uix.label 模块。
class MyApp(App):
def build(self):
返回一个 Label,其文本内容为 'Hello, world!'
如果当前模块的名称等于“__main__”。
MyApp().run()
Kivy 能够进行广泛的定制,并且可以利用它自身的 Kv 语言来对用户界面进行定义。
(Python GUIs)
(LogRocket Blog)
pip方式安装:
使用 python 命令,通过 -m pip 安装 "kivy[full]" 以及 kivy_examples 。具体来说,就是利用 pip 工具来安装包含 "full" 特性的 kivy 库以及 kivy_examples 相关内容。
选择指南方面,需考虑项目需求、开发时间和难度;社区与支持情况也很重要;许可和成本同样不可忽视;最后进行总结建议并补充 Tkinter 相关内容。
优点:
缺点:
PyQt
优点:
缺点:
wxPython
优点:
缺点:
总结建议