PyQt5 - 新增功能

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() getSaveFileName() 的 getSaveFileNameAndFilter()。 这些方法的旧签名也发生了变化。

PyQt5 没有规定定义一个从多个 Qt 类继承的类。

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

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

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