1、不与 PyQt4 兼容
2、不再对Python老版本提供支持(Python 2.6 之前)
3、不再实现PyQt4不推荐的API接口

PyQt5 不支持任何在PyQt4版本中标记为不推荐或舍弃的Qt API(如果有就会当Bug处理)
4、不再提供多版本API接口

PyQt4 支持多版本的API(如QString ,QVariant 等)
PyQt5 只支持最新的API版本(除QVariant外)
QVariant的改变是去掉了 QPyNullVariant (在QVariant的帮助文档里也有显示)
5、信号和插槽(Signals and Slots)机制更新

# 下面所列出来的调用方式不再支持
QObject.connect()
QObject.emit()
SIGNAL()
SLOT()

所有含有以SIGNAL()或SLOT()返回结果为参数的方法不再支持,转而提供可调用方法(函数)或已捆绑的信号(a bound signal)

风格对比(代码)

# PyQt5
combo = QtWidgets.QComboBox(self)
combo.activated.connect(self.onActivated)
# PyQt4
combo = QtWidgets.QComboBox(self)
self.connect(combo, QtCore.pyqtSignal('activated(QString)'), self.onActivated)

QObject.disconnect() 调用无参数,作用断掉所有信号和插槽的连接

6、新增 QtQml QtQuick 模块并支持从QML创建Python对象

不再支持QtDeclarative, QtScript, QtScriptTools模块
以上模块被 QtQml 和 QtQuick 替换。
支持从QML创建Python对象

7、QtGui 模块更新

QtGui模块被拆分了为QtGui, QtPrintSupport 和QtWidgets三大模块

from PyQt5 import QtGui, QtPrintSupport, QtWidgets

8、QtOpenGL 模块更新

PyQt5的QtOpenGL模块只提供QGLContext QGLFormat 和 QGLWidget类

QtWebKit 模块更新

PyQt4的QtWebKit在PyQt5中分成了QtWebKit和QtWebKitWidgets模块

扩展性增强

不再支持pyqtconfig模块
The PyQt5 Extension API
PyQt5 支持第三方包直接基于PyQt5开发(如QScintilla)

dbus.mainloop.qt 模块更名

#dbus.mainloop.qt
dbus.mainloop.pyqt5 # 相同功能只更名
QDataStream 明显数值的参数以数值处理和返回

readUint8(); readInt8(); writeUInt8(); writeInt8() 方法在PyQt5中以数值类型写入和返回(PyQt4中是以数值文本)

9、QFileDialog 文件操作接口更新

PyQt5 PyQt4 备注
getOpenFileName() getOpenFileNameAndFilter()
getOpenFileNames() getOpenFileNamesAndFilter()
getSaveFileNameAndFilter() getSaveFileName()
PyQt5 舍弃了 PyQt4 同名的方法

10、QMatrix 方法不再支持

PyQt5 中已经不再支持 PyQt4种不推荐方法 QMatrix
PyQt5 中可以考虑使用 QPropertyAnimation

QGraphicsItemAnimation 方法不再支持

PyQt5 中已经不再支持 PyQt4种不推荐方法 QGraphicsItemAnimation
PyQt5 中可以考虑使用 QTransform

QPyTextObject 被舍弃

PyQt4 implements the QPyTextObject as a workaround for the inability to define a Python class that is sub-classed from more than one Qt class. PyQt5 does support the ability to define a Python class that is sub-classed from more than one Qt class so long as all but one of the Qt classes are interfaces, i.e. they have been declared in C++ as such using Q_DECLARE_INTERFACE. Therefore QPyTextObject is not implemented in PyQt5.

11、PyQt5 自动释放GIL,而不是PyQt4的强制释放

PyQt5 退出时自动调用sip.setdestroyonexit()以禁用自动析构

Python解释器退出PyQt4应用程序时会默认调用C++析构器处理所有它拥有的线程(这通常是以随机的顺序,因此可能会导致解析器崩溃),通过调用 sip.setdestroyonexit() 函数可以禁用。
PyQt5 总会自动调用 sip.setdestroyonexit() 函数.

PyQt5 与PyQt4的区别相关推荐

  1. PyQt 5.4参考指南 ---- PyQt5和PyQt4之间的差异

    欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/in ...

  2. PyQt5 与 PyQt4 差别对比

    PyQt5 与 PyQt4 差别 描述能力有限,不确定的翻译会在旁边注释英文 更新时间:2017年05月12日 官网链接 不与 PyQt4 兼容 虽然实际上升级PyQt4写的项目不是那么糟 不再对Py ...

  3. Python基础-pyqt5

    PyQt PyQt框架简介 PyQt是一套Python的GUI开发框架 GUI GUI是Graphical User Interface的英文简称,即图形用户界面. 是指采用图形方式显示的计算机操作用 ...

  4. qt for python教程_PyQt教程 - pythonQt的安装和配置及版本间差异

    目前发现的python下最好的图形库,wxpython.tkinter都觉得没这个好用.PyQt的核心是Qt(c++)库,一般不会占用太多时间的逻辑代码速度慢点,也不会成为瓶颈.同时,在使用方式上,P ...

  5. python PyQt5中文教程☞【第一节】PyQt5简介

    引用文章:http://code.py40.com/pyqt5/ 文章目录 PyQt5说明 PyQt4和PyQt5的区别 PyQt5说明 pyqt5是一套Python绑定Digia QT5应用的框架. ...

  6. PyQt5快速入门(一)PyQt5简介

    一.PyQt5简介 1.PyQt5简介 PyQt是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一.PyQt提供了一个设计良好的窗口控件集合,每一个 ...

  7. PyQt5学习—1介绍

    "PyQt5学习"系列若不做明显提示,默认翻译自zetcode. 如果本系列博文侵犯了您的合法权益,请在博客中留下评论或联系:jay5559420@163.com.我会及时修改和删 ...

  8. Hello PyQt5(一)PyQt5简介

    一.PyQt5简介 1.PyQt5简介 PyQt是Qt框架的Python语言实现,由Riverbank Computing开发,是最强大的GUI库之一.PyQt提供了一个设计良好的窗口控件集合,每一个 ...

  9. PyQt5实现图片缩放、旋转

    下面讲述PyQt5实现图片缩放.旋转的两种方式 第一种基于鼠标滚轮缩放,左右键移动 pyqt5实现过程如下 # -*- coding: utf-8 -*-from PyQt5 import QtCor ...

  10. 如何用python实现地图定位_基于 PyQt5 实现地图中定位相片拍摄位置

    项目简介:本次项目主要学习了如何查找相片中的 Exif 信息,并通过 Exif 信息中的 GPS 数据在百度地图中进行定位标点,以确定相片的拍摄地点.本次实验的目的旨在通过包含 GPS 信息的相片进行 ...

最新文章

  1. maven命令-P 参数
  2. oracle操作字符串:拼接、替换、截取、查找
  3. IntelliJ IDEA 常用设置
  4. 洪水填充算法_基于GIS的洪水淹没范围计算
  5. springboot嵌入thymeleaf后css404_SpringBoot2整合Thymeleaf
  6. 牛客 - Dress as women(sg定理+位运算)
  7. 进销存设计之——单据的数据表结构设计
  8. 无线打印 airprint 服务器,如何让 Windows 的共享打印机支持 AirPrint
  9. 使用LazZiya.ExpressLocalization开发多语言ASP.NET Core 2.x项目
  10. 代码快速“检”“修”不是梦,阿里云MaxCompute Studio 2.9.0 新版本发布
  11. CI 什么是构建 gradle
  12. Internet上的Linux资源
  13. 大学计算机基础知识电子版,天津大学计算机基础知识(完整版带答案)
  14. python实现LU分解
  15. 前后端开发的心得体会_web前端学习心得体会
  16. websocket 1006错误码
  17. utc时间 单位换算_UTC时间和GMT时间 | 圈里圈外
  18. pandas模块DataFrame数据结构行数据的获取
  19. 经典算法研究系列:八、再谈启发式搜索算法
  20. JavaWeb学习-AJAX-3-练习:验证用户名是否存在

热门文章

  1. 信息安全技术 网络安全漏洞分类分级指南(GB/T 30279-2020 )
  2. 科技创新全球资本财富盛会暨联盟系统2.0启动大会圆满举行
  3. 市科创委智能硬件联盟之打造公共平台,助力创新创业论坛圆满落幕
  4. 高频电子线路_实验一:调谐放大器
  5. 【美赛备赛】word编辑公式全攻略
  6. 科来网络分析系统 6.7 技术交流版序列号
  7. 基于JavaWeb的3D网上模板商城
  8. 运行maple需要java_maple:如何在启动时包含我的库
  9. 开源OA协同办公平台搭建教程丨模糊人员匹配功能配置说明
  10. 新建文本html,创建邮件模板时html内容和文本内容哪种好