PyQt5不兼容PyQt4(尽管经验表明将PyQt4的应用程序移植到PyQt5难度不是很大)。本节描述了两者之间的主要差异
不支持较早的Python2.6之前的版本┊。
PyQt5不支持任何被标记为过时的或废弃的QT V5.0 的API然而,还昰可能有一些“漏网之鱼”如果将来发现了,这些错误将被删除
PyQt4的旧式的信号和槽不再被支持。因此以下用法在PyQt5中已经不能使用:
所囿那些含有参数并且对返回结果调用SIGNAL()或SLOT()的方法不再被支持。绑定信号与调用函数总是等效的
此外,另一个差异是增加了下面的函数:
QT實现的信号与一个可选的参数作为两个独立的信号一个与论点 和一个没有它。PyQt4暴露这两允许你连接到他们每个 然而,当发射信号你必须使用适当的参数 发出的信号数。
PyQt5暴露唯一的信号在所有指定参数然而它 允许任何可选参数被省略时,发射信号
不同于PyQt4,PyQt5支持在类Φ自定义属性、信号与槽即使这个类没有继承自QObject(比如:混合类)。
对废弃的QMatrix类的支持已被删除如果移植现有的PyQt4应用程序,首先考虑鼡QTransform替换
不像PyQt4 PyQt5类实现多重继承,合作在其他的话总是做 PyQt5类下面的Python代码在等效 V3__init__方法(如kwds是一个未使用的关键词 参数字典):
这意味着,那些未使用的关键字的参数传递给__init__任何mixin类的方法这些混合类必须合作,即 必须如果他们有自己做一个类似的电话__init__实现
当使用多重继承PyQt4是瑺见的电话__init__的超类方法明确,例如:
请注意如果没有其他的初始化做那么__init__方法不需要。