QMessageBox.question报错:TypeError: question(QWidget, str, str, buttons: Union[QMessageBox.StandardBut
报错:
TypeError: question(QWidget, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.StandardButtons(QMessageBox.Yes|QMessageBox.No), defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton): argument 1 has unexpected type 'Ui_MainWindow'
报错的提示是QMessage.question()函数的第一个参数的类型不对。
代码中也警告:Unexpected type(s):(Ui_MainWindow, str, str, Any, Any)
具体代码
我直接将自己定义的 tipDialog()
函数放在了上面定义的Ui_MainWindow()
类中,第一个参数使用了self
,这里的self
应该指代的Ui_MainWindow()
类,所以出现了类型不符合的错误。
因为这个类的代码是用QtDesigner
自动生成的,就不想改类的代码了。但可以从QMessageBox.question
函数下手解决问题。
那我们就开看看QMessageBox.question函数的参数规则
QMessageBox.question
使用QMessageBox.question可以直接弹出带选择按钮的对话框,然后可以通过判定来获取用户的选择结果。
基本格式: QMessage.question(parent, title, content, button)
parent: 表示对话框所归属的程序窗口。填写父类(通常为self);若不属于任何程序窗口,为None。
title: 标题。
content: 内容。
button: 对话框按钮。
result = QMessageBox.question(self, '提示', '文件保存路径不存在,是否创建?', QMessageBox.Yes | QMessageBox.No,QMessageBox.No)
QMessageBox.Yes | QMessageBox.No 表示要显示什么样的按钮,最后一个参数QMessageBox.No
表示默认选中哪个按钮。
报错解决方法:
将QMessageBox.question
的第一个参数设为None
,就不会再报错了。
def tipDialog(self,path):result = QMessageBox.question(None, '提示', '文件保存路径不存在,是否创建?', QMessageBox.Yes | QMessageBox.No,QMessageBox.No) # 默认关闭界面选择Noif result == QMessageBox.Yes:os.makedirs(path)return Trueelse:return False
测试程序
为了验证,专门编了一段测试小代码,可以正常弹出提问对话框。
from PyQt5.QtWidgets import QMessageBox, QApplication
import os
import sysclass test():def __init__(self,path):self.path = pathdef tipDialog(self):result = QMessageBox.question(None, '提示', '文件保存路径不存在,是否创建?', QMessageBox.Yes | QMessageBox.No,QMessageBox.No) # 默认关闭界面选择Noif result == QMessageBox.Yes:os.makedirs(self.path)return Trueelse:return Falseif __name__ == '__main__':# passapp = QApplication(sys.argv)demo = test('123')demo.tipDialog()sys.exit(app.exec_())
关于其他类型的对话框(消息对话框、提问对话框、警告对话框、严重错误对话框、关于对话框)可以学习下面这篇文章:
[ PyQt入门教程 ] PyQt5基本控件使用:消息弹出、用户输入、文件/目录选择对话框
参考文章
[PyQt5]{13} —— QMessageBox对话框
PyQt5 QMessageBox.question一种偷懒的快速对话框
QMessageBox.question报错:TypeError: question(QWidget, str, str, buttons: Union[QMessageBox.StandardBut相关推荐
- Python报错TypeError: 'str' object is not callable
原文:http://blog.sina.com.cn/s/blog_71f3890901017rsh.html Python报错TypeError: 'str' object is not calla ...
- python3报错 TypeError: can’t concat bytes to str 原因与解决方法
在做项目的时候,Python3会报错如下错误: TypeError: can't concat bytes to str 意思是: 类型错误:无法将字节连接到字符串 类似的错误有: TypeError ...
- python报错TypeError: must be str, not int
python报错TypeError: must be str, not int 字符串拼接一个整型变量报错,代码如下 for i in range(1,586):res = 'test' + i 报错 ...
- python报错 TypeError: an integer is required
问题描述: 在本地使用socket向NetAssist传送数据的时候,执行python文件后发现报出python 报错TypeError: an integer is required错误 代码: 1 ...
- python打开文件报错无效序列_解决Python 写文件报错TypeError的问题
处理上传的文件: f1 = request.FILES['pic'] fname = '%s/%s' % (settings.MEDIA_ROOT, f1.name) with open(fname, ...
- python创建对象后调用对象的方法,报错TypeError: getName() takes 0 positional arguments but 1 was given
源码 ## TODO: Create multiple cars and visualize them height = 4 width = 6 world = np.zeros((height, w ...
- VUE.JS 使用axios数据请求时数据绑定时 报错 TypeError: Cannot set property 'xxxx' of undefined 的解决办法...
data里面做了定义 在方法里面进行赋值 用 this.info = repos.data 数据可以请求到,但是会报错 TypeError: Cannot set property 'listgrou ...
- 记录webpack使用问题,使用报错“UnhandledPromiseRejectionWarning,file-loader图片过大,无法加载图片,打包html文件报错TypeError
记录webpack使用报错 版本号问题 运行npm run build,报错 "UnhandledPromiseRejectionWarning: TypeError: this.getRe ...
- Python报错TypeError: ‘User‘ object is not iterable
Python报错TypeError: 'User' object is not iterable 原因 User对象是不可迭代的,我这里是因为User并不是list,所以是不可迭代的,所以不使用迭代即 ...
最新文章
- PHP curl 实现RESTful PUT DELETE 实例
- linux下几种反弹Shell方法的总结与理解
- Spring Cloud Stream消费失败后的处理策略(一):自动重试
- project项目管理案例_福清公司开展Project项目管理软件学习培训活动
- 海贼王热血航线正在连接服务器,航海王热血航线连接服务器失败?解决方法一览...
- java 动态转换器,Java 编程的动态性,第 5 部分: 动态转换类
- html5怎么跟安卓交互,html5怎么与android交互
- java 抽象类 方法_java 抽象类
- python有道字典_Python基于有道实现英汉字典功能
- java 计算 四分位,Java四分位计算方法
- java 阻塞队列介绍
- C mysql带参数存储过程_C# 调用Mysql 带参数存储过程
- tp5框架原理详解_工程测量教学合集,测量施工方案+原理解读,测量人员有它就够了...
- html5效果案例,10个优秀HTML5网站案例赏析
- sql中别名as,不写,以及使用双引号总结
- 【重要】国庆节快乐!有三AI所有课程限时7天优惠
- 信号处理基本概念:单位脉冲响应和单位阶跃响应
- 笔记本双系统linux显示屏显示错误(笔记本屏幕显示错误 | 外接显示屏显示错误)
- pygame的基础知识详解(主窗口创建、图像绘制、时钟对象和事件响应等知识点),请惠存
- pikachu靶场SQL,sqlmap解法
热门文章
- 深度解析与实践:运用 MATLAB 实现航天器 GPS 导航与姿态控制技术在航空航天工程中的应用与模拟--浅论
- SQL的注入对于安全测试的重要性~
- SAP ABAP基础知识总结图
- 树莓派(十一)树莓派驱动开发入门:从读懂框架到自己写驱动(上)
- jmeter接口并发测试,多个用户登录,并提取token传入下个接口
- Mongodb数据导出指定格式
- “Hello World!”团队第六周的第二次会议
- mac开发效率神器AIfred详细使用说明
- Scipy稀疏矩阵bsr_array
- 常用正则表达式最强汇总(含 Python 代码举例讲解 + 爬虫实战)