PyQt5 - 新特性



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

PyQt5 不支持低于 v2.6 的 Python 版本。

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's XML 文件生成 Python 代码)不支持 --pyqt3-wrapper 标记。

pyrcc5 不支持 -py2 和 -py3 标记。pyrcc5 的输出与 v2.6 及更高版本的 Python 兼容。

PyQt5 会一直自动调用 sip.setdestroyonexit(),并调用其拥有所有包装实例的 C++ 析构函数。

广告
© . All rights reserved.