@[TOC]pyqt6
pyqt5转pyqt6需要注意的事项 一、枚举类型 Pyqt5的枚举类型是用python的enum.IntEnum实现的,Pyqt6的枚举类型是是用python的enum.Enum实现的。
在Pyqt5使用枚举为:类名.枚举值
在Pyqt6使用枚举为:类名.枚举名.枚举值。
枚举名是什么需要查qt文档,或者在IDE(vs code、pycharm、sublime等)查看document说明。
常用文档:pyqt6所有类
常用文档:Qt命名空间
以下是几个样例:
# from PyQt5.QtCore import Qtfrom PyQt6.QtCore import Qt# Qt.AlignCenter# 在https://doc.qt.io/qt-6/qt.html查到# enum:AlignmentFlag { AlignLeft, AlignRight, AlignHCenter, AlignJustify, AlignTop, …, AlignVertical_Mask }Qt.AlignmentFlag.AlignCenter# Qt.RightButtonQt.MouseButton.RightButtonQt.MouseButton.LeftButton# QEvent.MouseButtonPressQEvent.Type.MouseButtonPress#QtWidgets.QMessageBox.YesQtWidgets.QMessageBox.StandardButton.Yes# 其他枚举类型新写法:Qt.MatchFlag.MatchExactlyQt.ItemDataRole.UserRoleQt.CheckState.CheckedQt.ItemFlag.NoItemFlagsQt.ContextMenuPolicy.CustomContextMenuQt.GlobalColor.redQtGui.QFont.Weight.BoldQtWidgets.QDialogButtonBox.ButtonRole.AcceptRoleQtWidgets.QLineEdit.EchoMode.PasswordQAbstractItemView.EditTrigger.DoubleClickedQAbstractItemView.EditTrigger.NoEditTriggersQAbstractItemView.SelectionBehavior.SelectRows
二、取消QtWidgets.QDesktopWidget()# 屏幕坐标、宽高#rect = QtWidgets.QDesktopWidget().screenGeometry()rect = QtGui.QGuiApplication.primaryScreen().availableGeometry()
三、取消QtWidgets.qApp# QtWidgets.qApp.quit()QApplication.quit()QApplication.exit()
四、改变QAction所属模块# QtWidgets.QActionQtGui.QAction
五、删除.exec_() 、.print_()方法六、删除Qt模块改用.exec()
# from PyQt5 import Qtfrom PyQt6.QtCore import Qt
七、注意python、PyQt6、PyQt6-Qt6之间版本的一致性 (在外网环境通过pip install PyQt6安装的应该没有此问题,可跳过)
我的开发环境是Windows7(内网)、Windows10(外网)上的python3.8.10《python-3.8.10-amd64.exe》。我有离线安装的需求,之前下载PyQt6的whl文件的时候,没注意查看py版本,安装了下面的三个库
PyQt6-6.2.2-cp36-abi3-win_amd64.whl
PyQt6_Qt6-6.2.2-py3-none-win_amd64.whl
PyQt6_sip-13.2.0-cp38-cp38-win_amd64.whl
同样的代码,在Windows10(外网)上导入PyQt6正常运行,在Windows7(内网)上导入PyQt6的任意一个模块,都报错:importError: DLL load failed while importing QtCore: 找不到指定的程序。
Traceback (most recent call last): File "D:devworkspacetest.py", line 7, in
网上找了很多资料,有说vscode+Anaconda安装python和Pyqt出问题的,有说要安装Visual C++2015-2019以上版本的,试了都没用。后面想着重新安装PyQt6试试,才发现我安装的PyQt6的《PyQt6-6.2.2-cp36-abi3-win_amd64.whl》写明cp36,是对应Python3.6的。然后马上重新下载了低版本的PyQt6.1.1,以下三个库重新安装了,就正常了。
PyQt6-6.1.1-cp36.cp37.cp38.cp39-none-win_amd64.whl
PyQt6_Qt6-6.1.1-py3-none-win_amd64.whl
PyQt6_sip-13.2.0-cp38-cp38-win_amd64.whl
不过奇怪的是,在Windows10上用Python3.8.10安装《PyQt6-6.2.2-cp36-abi3-win_amd64.whl》竟然能正常使用…
参阅:pyqt5与pyqt6的不同点
点击排行
- python语言属于什么语言?Python特点主要有哪些?
- 目前,Python已经成为求职中最吃香的三大编程语言之一,而且相较于C、C++、Java等语言而言,Python拥有非常独特的优势,通过极少的代码量就可以实现相同的功能,可以有效提升开发者的[+]
- 2 1
- 3 0
- 4 0
- 5 0
-
6
CDH6.3.2部署flink1.14.3出现/opt/cloudera/parcels/FLINK/lib/flink/bin/flink-yarn.sh:17:rotateLogFilesW
0 - 7 0
- 8 0
- 9 0
- 10 0
-
11
Android应用端连接服务端上的Rabbitmq/MQTT1883端口卡在connect方法解决办法
0