PyQt 5.4参考指南 ---- PyQt5和PyQt4之间的差异
https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149(欢迎关注博主主页,学习python视频资源)
pyqt4只有440个类,
pyqt5有1000个类
pyqt商业版本和开源版本没有功能区别,如果pyqt与gpl协议不兼容,则考虑购买pyqt商业版本。
GPL协议,general public liscense代码开源协议
http://www.mamicode.com/info-detail-456379.html
标签:
PyQt5 和 PyQt4 之间的差异
PyQt5不兼容PyQt4(尽管经验表明,将PyQt4的应用程序移植到PyQt5难度不是很大)。本节描述了两者之间的主要差异。
支持Python的版本
不支持较早的Python2.6之前的版本┊。
推荐使用特性
PyQt5不支持任何被标记为过时的或废弃的QT V5.0 的API。然而,还是可能有一些“漏网之鱼”。如果将来发现了,这些错误将被删除。
多个API
PyQt4支持许多不同的API版本(QString,QVariant等)。QVariant
PyQt5只支持V2版本的API。一个例外:对于QVariant ,去除了QPyNullVariant。
老式的信号和槽
PyQt4的旧式的信号和槽不再被支持。因此以下用法在PyQt5中已经不能使用:
- QObject.connect()
- QObject.emit()
- SIGNAL()
- SLOT()
所有那些含有参数,并且对返回结果调用SIGNAL()或SLOT()的方法不再被支持。绑定信号与调用函数总是等效的。
此外,另一个差异是增加了下面的函数:
- disconnect() 断开所有对 QObject实例的连接,不需要参数。
新风格的信号和槽
QT实现的信号与一个可选的参数作为两个独立的信号,一个与论点 和一个没有它。PyQt4暴露这两允许你连接到他们每个 。然而,当发射信号,你必须使用适当的参数 发出的信号数。
PyQt5暴露唯一的信号在所有指定参数。然而它 允许任何可选参数被省略时,发射信号。
不同于PyQt4,PyQt5支持在类中自定义属性、信号与槽,即使这个类没有继承自QObject(比如:混合类)。
QtDeclarative,QtScript和QtScriptTools模块
PyQt4的QtDeclarative,QtScript和QtScriptTools模块不再支持。这些已被替换为PyQt5的QtQml和QtQuick模块,PyQt5支持 Python对象创建QML。
QtGui模块
PyQt4的QtGui模块,在PyQt5中被拆分成三个模块:QtGui,QtPrintSupport和QtWidgets。
QtOpenGL模块
只有QGlContext,QGlFormat和QGlWidget类被PyQt5支持。
QtWebKit模块
PyQt4的QtWebKit模块被分成PyQt5的QtWebKit和QtWebkitWidgets模块。
pyqtconfig模块
PyQt4的pyqtconfig模块不支持。截面PyQt5扩展的API介绍了支持PyQt5 (例如提供第三方包qscintilla ),要建立在PyQt5。
dbus.mainloop.qt模块
PyQt4的dbus.mainloop.qt模块称为dbus.mainloop.PyQt5在 PyQt5。这使得他们可以并排安装。它们的功能是 相同。
QDataStream
的readuint8(),readint8(),writeuint8()和writeint8()方法解释值 读写数字。PyQt4中它们被解释为 单个字符的字符串。
QFileDialog
PyQt4的QFileDialog类的getOpenFileNameAndFilter(),getOpenFileNamesAndFilter()和getSaveFileNameAndFilter()方法,
在PyQt5中已更名为 getOpenFileName(),getOpenFileNames()和getSaveFileName()。
而PyQt4原来的getOpenFileName(),getOpenFileNames()和getSaveFileName()不再被PyQt5支持。
QGraphicsItemAnimation
对废弃的QGraphicsItemAnimation类的支持已被删除。如果移植现有的PyQt4应用程序,首先考虑用QPropertyAnimation替换。
QMatrix
对废弃的QMatrix类的支持已被删除。如果移植现有的PyQt4应用程序,首先考虑用QTransform替换。
QPyTextObject
PyQt4的QPyTextObject,是作为一个无法定义一个继承多个Qt类的Python类的变通的解决方法。PyQt5 支持定义一个Python类,来继承多个Qt类,只要他们已经在C++声明为Q_DECLARE_INTERFACE 。所以,QPyTextObject没有在PyQt5中实现。
QSet
PyQt4,套装在Python中的V2和V3一组Python 列表实现。在PyQt5套装总是作为一个集实现。
pyuic5
pyuic5不支持pyqt3——包装国旗pyuic4。
pyrcc5
pyrcc5不支持- PY2和- PY3国旗pyrcc4。输出pyrcc5兼容所有版本的Python Python 2.6 入手。
多重继承
不像PyQt4 PyQt5类实现多重继承,合作。在其他的话总是做 PyQt5类下面的Python代码在等效 V3__init__方法(如kwds是一个未使用的关键词 参数字典):
- super().__init__(**kwds)
这意味着,那些未使用的关键字的参数传递给__init__任何mixin类的方法。这些混合类必须合作,即 必须如果他们有自己做一个类似的电话__init__实现。
当使用多重继承PyQt4是常见的电话__init__的超类方法明确,例如:
- class MyQObject(QObject, MyMixin):
- def __init__(self, parent, mixin_arg):
- QObject.__init__(self, parent)
- MyMixin.__init__(self, mixin_arg)
- # Other initialisation...
在上述将导致PyQt5mymixin __init__。被称为两 。而要实现:
- class MyQObject(QObject, MyMixin):
- def __init__(self, **kwds):
- super().__init__(**kwds)
- # Other initialisation...
请注意,如果没有其他的初始化做那么__init__方法不需要。
混合类应实施如下:
- class MyMixin:
- def __init__(self, mixin_arg, **kwds):
- super().__init__(**kwds)
- # Other initialisation...
如果一个类只能继承从一个单一的类仍然可以调用 超阶级的__init__方法明确(虽然它是推荐使用super())。
看到合作支持多继承。
释放GIL
GIL只在需要释放时才释放。而PyQt4调用Qt后总是释放GIL。
析构
当Python解释器退出PyQt4(默认)要求所有包裹的情况下,它拥有C++析构函数 。这发生在一个随机的顺序,可以使译员 崩溃。这种行为可以通过禁用 调用setdestroyonexit() SIP。功能。
PyQt5总是叫setdestroyonexit() SIP。自动。但是如果用实例 没有在模块级和相反 被创建在函数然后问题依然存在。例如,不要以下这样做 :
- def main():
- app = QApplication(sys.argv)
- w = QWidget()
- w.show()
- app.exec()
- if __name__ == ‘__main__‘:
- main()
以下做法是对的:
- if __name__ == ‘__main__‘:
- app = QApplication(sys.argv)
- w = QWidget()
- w.show()
- app.exec()
个人主页
http://www.itongji.cn/user/getSheCreateList?userId=105371
视频教程网址
http://sina.lt/fkem
Python爬虫视频系列,小白入门
http://t.cn/R8Xu2c8
python机器学习-乳腺癌细胞挖掘(博主亲自录制视频)
https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campaign=commission&utm_source=cp-400000000398149&utm_medium=share
PyQt 5.4参考指南 ---- PyQt5和PyQt4之间的差异的更多相关文章
- Python - SIP参考指南 - 介绍
介绍 本文是SIP4.18的参考指南.SIP是一种Python工具,用于自动生成Python与C.C++库的绑定.SIP最初是在1998年用PyQt开发的,用于Python与Qt GUI toolki ...
- PHP程序员进阶学习书籍参考指南
PHP程序员进阶学习书籍参考指南 @heiyeluren lastmodify: 2016/2/18 [初阶](基础知识及入门) 01. <PHP与MySQL程序设计(第4版)> ...
- ANTLR3完全参考指南读书笔记[01]
引用 Terence Parr. The Definitive ANTLR Reference, Building Domain Specific Languages(antlr3 version). ...
- 《VTL语法参考指南》中文版[转]
转自:http://blog.csdn.net/javafound/archive/2007/05/14/1607935.aspx <VTL语法参考指南>中文版 源文见 http://ve ...
- Windows Server 2008 R2服务器系统安全设置参考指南
Server 2008 R2服务器系统安全设置参考指南 重点比较重要的几部 1.更改默认administrator用户名,复杂密码 2.开启防火墙 3.安装杀毒软件 1)新做系统一定要先打上补丁(升 ...
- transform使用参考指南
transform使用参考指南 2010-09-18 16:06:33| 分类: html5+css3|字号 订阅 语法 transform :none | <transform-fu ...
- POCO库中文编程参考指南(4)Poco::Net::IPAddress
POCO库中文编程参考指南(4)Poco::Net::IPAddress 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmai ...
- POCO库中文编程参考指南(3)Poco::Net::Socket
POCO库中文编程参考指南(3)Poco::Net::Socket 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.c ...
- POCO库中文编程参考指南(2)基本数据类型(Poco/Types.h)
POCO库中文编程参考指南(2)基本数据类型 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.com (# -> ...
随机推荐
- (第十周)评论Beta发布
本人所在组:奋斗吧兄弟 按课上展示的顺序对每组进行点评: 1. 飞天小女警 项目:礼物挑选工具 相对于alpha发布时有了很大的进步.项目的界面很漂亮,这个项目的想法很新颖,我很喜欢.礼物的挑选给出 ...
- Promise.all请求失败重发功能的实现
写爬虫时遇到用Promise.all同时请求多个页面,不可避免的会遇到某些请求失败的情况,这时可以实现一个"重发失败请求"的功能. Promise.all(task).then() ...
- Daily Scrumming 2015.10.20(Day 1)
一.今明两天任务表 Member Today’s Task Tomorrow’s Task 江昊 购买服务器,搭建服务器,配置服务器端用户与权限管理 配置ruby与rails环境 配置mysql与数据 ...
- 第二阶段Sprint冲刺会议10
进展:把所有功能整合到主界面,结果导致视频只能播放不能录制,闹钟加不进去,导致闹钟功能差点不能用,放弃整合.
- Task 4.2 求一个矩阵的最大子矩阵的和
任务:输入一个二维整形数组,数组里有正数也有负数.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). (1)设计思想:把二维矩阵分解成 ...
- 软工实践-Beta 冲刺 (4/7)
队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 1.界面的修改与完善 展示GitHub当日代码/文档签入记 ...
- Leetcode题库——28.实现strStr()
@author: ZZQ @software: PyCharm @file: strStr.py @time: 2018/11/6 20:04 要求:给定一个 haystack 字符串和一个 need ...
- Leetcode题库——25.k个一组翻转链表
@author: ZZQ @software: PyCharm @file: ReverseList.py @time: 2018/11/6 15:13 题目要求:给出一个链表,每 k 个节点一组进行 ...
- DPDK L3fwd 源码阅读
代码部分 整个L3fwd有三千多行代码,但总体思想就是在L2fwd的基础上,增加网络层的根据 IP 地址进行路由查找的内容. main.c 文件 int main(int argc, char **a ...
- cxGrid使用汇总
1.自动行高:CellAutoHeight(单元自动高度)设置为True. procedure <AForm>.<AGridColumn>PropertiesValidate( ...