PyQt5 有什么新特性
PyQt5 API 不与之前的版本自动兼容。因此,涉及PyQt4模块的Python代码应通过进行相关修改来手动升级。本章列出了PyQt4和PyQt5之间的主要区别。
PyQt5 不支持QObject类的connect()方法,用于信号和槽的连接。因此,不能再使用该方法实现连接了。
QObject.connect(widget, QtCore.SIGNAL(‘signalname’), slot_function)
只定义了以下语法-
widget.signal.connect(slot_function)
之前在QtGui模块中定义的类现在已经分布在 QtGui、QtPrintSupport 和 QtWidgets 模块中。
在新的QFileDialog类中, getOpenFileNameAndFilter() 方法被 getOpenFileName() 、 getOpenFileNamesAndFilter() 方法被 getOpenFileNames() 方法替代, getSaveFileNameAndFilter() 方法被 getSaveFileName() 方法替代。这些方法的旧签名也发生了变化。
PyQt5不支持从多个Qt类派生的类的定义。
pyuic5 实用程序(用于从Designer的XML文件生成Python代码)不支持–pyqt3-wrapper标志。
pyrcc5 不支持-py2和-py3标志。pyrcc5的输出与Python v2.6及更高版本兼容。
PyQt5总是自动调用 sip.setdestroyonexit() ,并调用它拥有的所有包装实例的C++析构函数。