Pyqt5 简明教程

PyQt5 - What’s New

PyQt5 API 不会自动与早期版本兼容。因此,涉及 PyQt4 模块的 Python 代码应通过进行相关更改手动升级。在本章中,列出了 PyQt4 和 PyQt5 之间的差异。

v2.6 早期版本的 Python 不支持 PyQt5。

PyQt5 不支持 QObject 类的 connect() 方法用于信号与槽之间的连接。因此,不能再实现用法 −

QObject.connect(widget, QtCore.SIGNAL(‘signalname’), slot_function)

仅定义以下语法 −

widget.signal.connect(slot_function)

早期 QtGui 模块中定义的类已分布在 QtGui, QtPrintSupportQtWidgets 模块中。

在新 QFileDialog 类的 getOpenFileNameAndFilter() 方法中, getOpenFileName(), getOpenFileNamesAndFilter()getOpenFileNames()getSaveFileNameAndFilter()getSaveFileName() 替换。旧这些方法的签名也已发生更改。

PyQt5 无法定义一个从多个 Qt 类进行子类化的类。

pyuic5 实用程序(用于从 Designer 的 XML 文件生成 Python 代码)不支持 --pyqt3-wrapper 标志。

pyrcc5 不支持 -py2 和 -py3 标志。pyrcc5 的输出与 v2.6 及以后版本的所有 Python 版本均兼容。

PyQt5 始终自动调用 sip.setdestroyonexit() 并调用它拥有的所有封装实例的 C++ 析构函数。