pyqt5转pyqt6需要注意的事项
@[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 Qt
from 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.RightButton
Qt.MouseButton.RightButton
Qt.MouseButton.LeftButton# QEvent.MouseButtonPress
QEvent.Type.MouseButtonPress#QtWidgets.QMessageBox.Yes
QtWidgets.QMessageBox.StandardButton.Yes# 其他枚举类型新写法:
Qt.MatchFlag.MatchExactly
Qt.ItemDataRole.UserRole
Qt.CheckState.Checked
Qt.ItemFlag.NoItemFlags
Qt.ContextMenuPolicy.CustomContextMenu
Qt.GlobalColor.red
QtGui.QFont.Weight.Bold
QtWidgets.QDialogButtonBox.ButtonRole.AcceptRole
QtWidgets.QLineEdit.EchoMode.Password
QAbstractItemView.EditTrigger.DoubleClicked
QAbstractItemView.EditTrigger.NoEditTriggers
QAbstractItemView.SelectionBehavior.SelectRows
二、取消QtWidgets.QDesktopWidget()
# 屏幕坐标、宽高
#rect = QtWidgets.QDesktopWidget().screenGeometry()
rect = QtGui.QGuiApplication.primaryScreen().availableGeometry()
三、取消QtWidgets.qApp
# QtWidgets.qApp.quit()
QApplication.quit()
QApplication.exit()
四、改变QAction所属模块
# QtWidgets.QAction
QtGui.QAction
五、删除.exec_() 、.print_()方法
改用.exec()
六、删除Qt模块
# from PyQt5 import Qt
from 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:\dev\workspace\test.py", line 7, in <module>from PyQt6 import QtCore
ImportError: DLL load failed while importing QtCore: 找不到指定的程序。
网上找了很多资料,有说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的不同点
pyqt5转pyqt6需要注意的事项相关推荐
- PyQt6 和 PyQt5 的差异
PyQt6 和 PyQt5 的差异 PyQt6 是 PyQt5 的下一个版本,但两个版本的写法基本上其实大同小异,这篇教学会介绍 PyQt6 和 PyQt5 有何差异. 快速预览: .exec_() ...
- Python 第一个GUI制作 pyqt6+qtdesigner+vscode
目录 前言 一.PyQt6的下载安装 二.PyQT6在vscode中的配置 1.下载Vscode 2.安装拓展 前言 为了完成课程的一个研究报告--制作一个能实现混凝土压弯承载力计算的小程序. 仅有一 ...
- 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子
本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...
- 从零开始编写一个上位机(串口助手)QT Creator + Python
提示:本博客作为学习笔记,有错误的地方希望指正,此文可能会比较长,作为学习笔记的积累,希望对来着有帮助. 绪论:笔者这里使用的是QTCreator和Python来实现一个简单的串口上位机的开发的简 ...
- C++常用的支持中文的GUI库Qt 6之一:下载、安装与简单使用
C++常用的支持中文的GUI库Qt 6之一:下载.安装与简单使用 因为Qt发展变化较快,网上许多介绍Qt的下载.安装与使用已过时,初学者常因行不通而受挫,故此发布本文,以Qt 6.2.4开源版在Win ...
- 基于Python与OpenCV的纸质票自动统计功能的实现(一)界面编程
基于Python与OpenCV的纸质票自动统计功能的实现(一)--界面编程 作为一个资深的自动化工程师,界面编程对我来说太熟悉不过了,但是当时用的都是工业界面编程软件,比如WINCC.组态王等等,在这 ...
- pyqtgraph网格布局
pyqtgraph是基于pyqt5/pyside2/pyqt6/pyside6开发的高效科学数据可视化工具,其界面的布局方式和pyside6是一样的,本博文主要记录一下使用pyqtgraph的Grap ...
- PyQt6/PySide6:账本项目前端制作【附完整项目地址】
0. 前言 最近在家里闲着没事,正好又看到朋友@studentWheat发了篇用Tkinter做的账本,于是决定跟他一起改进这个程序. 屏幕截图: 1. 后端 后端主要是朋友做的,在这里就不多说了,放 ...
- python与pyqt5_【Python开发】PyQt5应用与实践
一个典型的GUI应用程序可以抽象为:主界面(菜单栏.工具栏.状态栏.内容区域),二级界面(模态.非模态),信息提示(Tooltip),程序图标等组成.本篇根据作者使用PyQt5编写的一个工具,介绍如何 ...
- PyQt5 图形界面-基础准备:安装Qt Creater、Qt Designer工具,使用Qt Designer设计界面,安装PyQt5工具库
PyQt5 就是一个把 QtDesigner 设计的界面转化为 python 代码的 python 库. QtDesigner 就是 QtCreater 里的一个功能,所以我们需要安装 QtCreat ...
最新文章
- 大数据产品开发流程规范_大数据技术思想入门(三):分布式文件存储的流程
- [转]Asp.Net Core 简单的使用加密的Cookie保存用户状态
- 作业调度问题java代码_Tabu Search求解作业车间调度问题(Job Shop Scheduling)-附Java代码...
- 第二篇: 在虚拟主机上使用ASP.NET Ajax
- ArcGIS Server 开发系列(一)--编程框架总览
- (11)FPGA跨时钟域问题导致数据偶尔异常(学无止境)
- 乒乓球训练机_比教练更牛的全新乒乓球机器人,超拟人黑科技,引领未来体育浪潮...
- 4.携程架构实践 --- 呼叫中心
- setInterval.js
- 使用N2N搭建虚拟局域网|可用于红警、我的世界联机
- 计算机硬件系统包括哪几部分组成,计算机硬件系统由哪几部分组成
- php实现手机归属地的查询、,PHP之cURL实现手机号码归属地查询功能
- Qt开发技术:图形视图框架(二)场景QGraphicsScene、QGraphicsItem与QGraphicsView详解
- 易企秀H5 json配置文件解密分析
- OA是什么意思?什么是OA? OA系统是什么?
- 一个实用的在线文档格式转换器
- Lottie 免费动画、在线预览
- 探访广东第二鬼城,一座长在石油上的城市
- 读书: 枪炮、病菌与钢铁
- android rsa加密工具类,GitHub - Lerist/encrypt: Android 加密解密工具包。
热门文章
- pch文件找不到的解决办法
- 最新!华为HCIA网络工程师题库精讲(02)
- 程序员入门编程,看这10本书,少走10年弯路
- java 中uuid生成算法_UUID生成算法,UUID还是snowflake
- 工业基础类IFC—总体架构和空间结构
- html节点分析,解析html程序(C#版)——遍历各个节点(mshtml)
- 频率采样型滤波器matlab,频率采样法设计带通滤波器matlab.doc
- 关于微信精选留言点赞刷赞之公众号评论点赞及文章评论点赞软件使用方法
- 【文章汇总】J2ME程序开发全方位基础讲解
- apt-cyg 代理设置