PyQt5 导入ui文件报错 AttributeError: type object ‘Qt‘ has no attribute
问题描述:
利用 PyQt5 编写可视化界面是较为普遍的做法,但是使用全新UI版本的 Pycharm 修改之前正常的UI文件时,在没有动其他代码的情况下发现出现以下报错 AttributeError: type object 'Qt' has no attribute 'Qt::ContextMenuPolicy::DefaultContextMenu':
Traceback (most recent call last):File "E:\master\main.py", line 16, in <module>main()File "E:\master\main.py", line 9, in mainmain_window = MainWindow() #创建窗口对象File "E:\master\MainWindow.py", line 24, in __init__loadUi("./UI/MainWindow0.ui", self)File "D:\newanaconda\lib\site-packages\PyQt5\uic\__init__.py", line 238, in loadUireturn DynamicUILoader(package).loadUi(uifile, baseinstance, resource_suffix)File "D:\newanaconda\lib\site-packages\PyQt5\uic\Loader\loader.py", line 66, in loadUireturn self.parse(filename, resource_suffix)File "D:\newanaconda\lib\site-packages\PyQt5\uic\uiparser.py", line 1037, in parseactor(elem)File "D:\newanaconda\lib\site-packages\PyQt5\uic\uiparser.py", line 826, in createUserInterfaceself.wprops.setProperties(self.toplevelWidget, elem)File "D:\newanaconda\lib\site-packages\PyQt5\uic\properties.py", line 415, in setPropertiesprop_value = self.convert(prop, widget)File "D:\newanaconda\lib\site-packages\PyQt5\uic\properties.py", line 378, in convertreturn func(prop[0], **args)File "D:\newanaconda\lib\site-packages\PyQt5\uic\properties.py", line 129, in _enumreturn self._pyEnumMember(prop.text)File "D:\newanaconda\lib\site-packages\PyQt5\uic\properties.py", line 111, in _pyEnumMemberreturn getattr(QtCore.Qt, membername)
AttributeError: type object 'Qt' has no attribute 'Qt::ContextMenuPolicy::DefaultContextMenu'
原因分析:
经排查,发现原因是编辑UI文件时使用了 Pycharm 自带的高版本Qt designer插件,使用该版本的designer编辑UI文件时保存的格式会发生变化。如下图所示
左侧为使用Pycharm 自带的高版本Qt designer插件编辑保存后的UI文件源码,右侧为使用外部工具的Qt designer 编辑保存后的UI文件源码,可见它们保存的格式略有区别。正是这种区别导致了报错的发生。
解决方案:
- 首先是解绑新版Pycharm里面对
.ui文件打开方式的绑定,如下图所示:

将插件里面搜索qt,取消qt的方框。重启pycharm生效之后,就不会再利用 pycharm 自带的高版本designer插件打开.ui文件了。
注:也可以不解绑,但是不要用pycharm自带的designer对文件做任何修改,实测改动再取消改动保存后还是会改变格式导致保错。 - 配置外部工具编辑
.ui文件,参考相关博客即可: Pycharm配置PyQt5的三个External Tools—Qt Designer、pyUIC、pyRCC。
具体为:File -> Settings -> Tools-> External Tools,点击 + 新建扩展工具,如下图所示

相关文章:
PyQt5 导入ui文件报错 AttributeError: type object ‘Qt‘ has no attribute
问题描述: 利用 PyQt5 编写可视化界面是较为普遍的做法,但是使用全新UI版本的 Pycharm 修改之前正常的UI文件时,在没有动其他代码的情况下发现出现以下报错 AttributeError: type object Qt has no attribute Qt::ContextMenuPolicy::Defaul…...
Unity中Rigidbody 刚体组件和Rigidbody类是什么?
Rigidbody 刚体组件 Rigidbody 是 Unity 中的一个组件,它可以让你的游戏对象像真实世界中的物体一样移动和碰撞。想象一下,你有一个小球,你希望它像真实世界中的球一样滚动、弹跳和碰撞,那么你就可以给这个小球添加一个 Rigidbod…...
MySQL学习笔记(持续更新中)
1、Mysql概述 1.1 数据库相关概念 三个概念:数据库、数据库管理系统、SQL 名称全称简称数据库存储数据的仓库,数据是有组织的进行存储DataBase(DB)数据库管理系统操纵和管理数据库的大型软件DataBase Mangement System…...
sqlserver插入数据删除数据
1、插入数据 1.1 直接插入 1.1.1 方式一 insert into test values(001,黎明,1),(002,冯绍峰,1),(003,菲菲,2);1.1.2 方式二 insert into test(ID,Name,Sex) values(004,丽丽,2),(005,凌晨,2),(006,虾米,1);1.2 插入部分行 insert into test(ID,Name) values(007,红)2、删除…...
[51单片机] 简单介绍 (一)
文章目录 1.单片机介绍2.单片机内部三大资源3.单片机最小系统4.STC89C52单片机 1.单片机介绍 兼容Intel的MCS-51体系架构的一系列单片机。 STC89C52:8K FLASH、512字节RAM、32个IO口、3个定时器、1个UART、8个中断源。 单片机简称MCU单片机内部集成了CPU、RAM、RO…...
6个岗位抢1个人,百万年薪抢毕业生?大厂打响AI人才战
前言 “24岁毕业时年薪50万元,到了30岁大概能升到P7(注:职级名称),那时就能年薪百万了。” 从上海交大硕士毕业后,出生于2000年的赵宏在今年入职腾讯,担任AI算法工程师,成为AI风口下第一批就业…...
erlang学习:Linux命令学习3
shell基本输出 创建一个test.sh文件,并开放他的权限,之后向其中编辑以下内容 touch test.sh chmod 777 test.sh vim test.shecho "hello linux"之后运行相应shell程序得到输出 ./test.sh变量 单引号特点: 单引号里的任何字符都…...
力扣41 缺失的第一个正数 Java版本
文章目录 题目描述代码 题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除…...
第五篇:Linux进程的相关知识总结(1)
目录 第四章:进程 4.1进程管理 4.1.1进程管理需要的学习目标 4.1.1.1了解进程的相关信息 4.1.1.2僵尸进程的概念和处理方法: 4.1.1.3PID、PPID的概念以及特性: 4.1.1.4进程状态 4.1.2进程管理PS 4.1.2.1静态查看进程 4.1.2.1.1自定义…...
企业级Windows server服务器技术(1)
windows server服务器安装 准备工作: 1.准备安装的镜像 2.安装好虚拟机VMware或者virtual box 3.准备安装的位置(选择你的电脑的磁盘上比较空闲的位置,新建一个文件夹并命名) 4.开始安装(按步骤)----…...
【30天玩转python】单元测试与调试
单元测试与调试 在 Python 开发中,编写单元测试和进行调试是保证代码质量、减少错误的重要步骤。单元测试可以帮助我们验证代码功能是否符合预期,调试则可以在代码出现问题时快速定位错误原因。 1. 单元测试简介 单元测试是对程序中最小可测试部分&…...
13.第二阶段x86游戏实战2-动态模块地址
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要…...
【WebLogic】WebLogic 11g 控制台模式下安装记录
WebLogic 11g的安装有三种方式: 1)GUI图形化模式; 2)控制台模式; 3)静默模式; 下面为大家展示下控制台模式下的安装过程记录,整个安装过程大部分都是回车,仅在【接收…...
失踪人口回归(明天开始继续更新学习内容)
从明天开始继续更新个人学习经验及收获,可能会直接从C入门开始,总结一下C在C的基础上增加的新语法。这篇就当作水贴算了,大家别点赞,留点赞给明天的文章,哈哈 我是安姐的修沟..............
AIGC对网络安全的影响
AIGC对网络安全的影响 引言 人工智能生成内容(AIGC)技术的快速发展对网络安全领域产生了深远影响。AIGC不仅在内容创作、媒体生成等方面展现了强大的能力,还可能被恶意使用,带来新的安全威胁。本文将探讨AIGC对网络安全的影响,列举实际案例,并提供相关建议。 AIGC技术…...
golang学习笔记25——golang 实现 MD5加密、RSA加密 和 Base64编码
推荐学习文档 golang应用级os框架,欢迎stargolang应用级os框架使用案例,欢迎star案例:基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识,这里有免费的golang学习笔…...
2024海外电商数据分析之印度篇
在2024年,印度电商市场继续保持着强劲的增长势头,成为全球电商领域中的一个亮点。根据Inc42发布的《2024年上半年印度电商市场报告》,印度电商市场规模已经达到1160亿美元,预计在2023年至2030年间,将以19%的复合年增长…...
JavaWeb纯小白笔记02:Tomcat的使用:发布项目的三种方式、配置虚拟主机、配置用户名和密码
通过Tomcat进行发布项目的目的是为了提供项目的访问能力:Tomcat作为Web服务器,能够处理HTTP请求和响应,将项目的内容提供给用户进行访问和使用。 一.Tomcat发布项目的三种方式: 第一种:直接在Tomcat文件夹里的webapp…...
为什么数据需要 QA 流程
当有人问我做什么工作时,我会说我是一名数据质量保证 (QA) 工程师。他们并不真正理解我的意思。“嗯,我做数据测试,”我试图解释,但常常无济于事。我有一些从事技术和软件开发的朋友,他们不太了解数据测试是什么&#…...
Spring Boot 学习之路 -- 基础认知
前言 最近因为业务需要,被拉去研究后端的项目,代码框架基于 Spring Boot,对我来说完全小白,需要重新学习研究…出于个人习惯,会以 Blog 文章的方式做一些记录,文章内容基本来源于「 Spring Boot 从入门到精…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
Linux 下 DMA 内存映射浅析
序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存,但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程,可以参考这篇文章,我觉得写的非常…...
