PyQt5 - VS PyQt 老版本

  • 简述

    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, 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++ 析构函数。