my1.exec()==QDialog::Accepted
f(my1.exec()==QDialog::Accepted)
my1是一个对话框,当调用exec方法时,弹出,等待用户响应,用户可能点击确定,那么exec返回QDialog::Accepted值,如果点击取消则返回QDialog::Rejected,这句话是通过返回值来确定用户的响应结果
1.如果使用exec()默认为模态的。如果用show()需要设置setModel(true)才是模态的。
2.当删除一个dialog对象时,exec()返回QDialog::Rejected,因此在删除dialog时要特别小心。举例说明一下:
A 是一个QWidget 。B是一个QDialog,B = new QDialog(A)。
int rec = B->exec();
if (!thisDeleted)
{
if (rec == QDialog::Accepted)
emit endSession();
if (rec == QDialog::Rejected)
emit endSession2();
}
endSession()和 endSession2()都是A得成员函数。当删除A时,B也会删除(因为B得parent是A),这个时候exec()会返回QDialog::Rejected,此时下面的 emit endSession2()还会继续执行,这个时候就会出现端错误了,因为A比B先删除,而此时还要调用A的成员,A都被删除了,还能调用其成员函数?要是能调用就奇了怪了。因此在类A中多了个静态变量thisDeleted,记得在析构A的时候把这个值改变了,这样就不会在调用emit endSession2(),也就不会出现段错了。
3.exec()是一个循环时间函数,哪它什么时候才能返回了?当调用 accept()(返回QDialog::Accepted), reject()(返回QDialog::Rejected),done(int r)(返回r),close()(返回QDialog::Rejected),hide()(返回QDialog::Rejected),destory()(返回QDialog::Rejected)。还有就是delete 自己的时候也会返回 QDialog::Rejected(destory()就会delete自己)。
4.close()会销毁对象嘛。答案是只有当设置了 setAttribute(WA:closeOnDelelte)是才会删除,如果这个标志没有设置,其作用和hide(),setvisible(false)一样,只会隐藏改对象。
5.当dialog在exec()时候。后台线程同样可以操作界面,如收到每个消息,还可以弹出QDialog。
my1.exec()==QDialog::Accepted相关推荐
- qt: exec()的用法,accept()和accepted的概念
转载:http://blog.csdn.net/xdlichen/article/details/46374517 本篇,会重点讲述模式对话框,以及exec()的用法,accept()和accepte ...
- Qt 5.12 编写多窗口程序(新手手把手教学)
目录 实现功能: 实现原理: 实现过程: 1.首先新建 Qt工程,工程名为 NewForm,Base class 选为 QWidget.建立好后工程文件列表如下图. 2.新建对话框类,如下图,在新建中 ...
- qt 新窗口show后马上关闭_qt学习(四)主窗选钮,显示新窗口。
游戏有选区这个习惯, 当然,我特指<冒险岛>了,有的时候就是打开一个主屏幕上五个按钮让你点击进入, 甚至有的时候进去了还要选哪个频道,游戏服务器都得分区,频道来完成功能.现在我们先进入想选 ...
- 关于Qt中QDialog对话框调用exec()函数界面退出造成僵尸程序问题
关于Qt中QDialog对话框调用exec函数产生的问题 问题一: 问题描述: 原因分析: 解决方案: 问题二: 问题描述: 求助:关于这个问题,学识尚浅,求大佬分析一波 问题一: QDialog对话 ...
- Qt中的QDialog
文章目录 1 Qt中的QDialog 1.1 QDialog简介 1.2 模态对话框和非模态对话框 1.3 对话框的返回值 2 登陆对话框实例分析 2.1 分析 2.2 代码实现 2.3 登录对话框的 ...
- Qt窗口部件——对话框QDialog
Qt对话框QDialog 1. 模态和非模态对话框 2. 多窗口切换 2.1 信号和槽 2.2 练习信号和槽例程 2.3 自定义对话框 3. 标准对话框 3.1 颜色对话框 3.2 文件对话框 3.3 ...
- Qt5开发学习总结(三)——窗口部件的使用(QWidget和QDialog)
窗口部件 QT提供的默认基类只有QMainWindow.QWidget.和QDialog这三种,这三种窗体也是用的最多的,QMainWindow是带有菜单栏和工具栏的主窗口类,QDialog是各种对话 ...
- 9.QT-标准对话框
Qt提供的可复用的标准对话框,全部继承自QDialog类,如下图所示: QMessageBox:信息对话框,用于显示信息.询问问题等: QFileDialog:文件对话框 QColorDialog:颜 ...
- QT中如何读写ini配置文件
本文首发于「3D视觉工坊」知识星球. 如图1所示,我们需要在QT界面中实现手动读取参数存放的位置,那么我们该如何做呢? 方法:读取ini格式的配置文件,实现路径的写入与读取. 第一步:界面构造函数中, ...
- 三、Qt Creator登录对话框
实现功能: 在弹出对话框中填写用户名和密码,按下登录按钮,如果用户名和密码均正确则进入主窗口,如果有错则弹出警告对话框. 实现原理: 通过上节的多窗口原理实现由登录对话框进入主窗口,而用户名和密码可以 ...
最新文章
- 在centos上通过yum直接安装最新版gcc和开发工具
- 计算机请说明您的专业知识与技能,湖南省2012对口招生考试计算机类专业综合考试大纲...
- javascript dom节点x
- Linux安装minikube命令整理
- ubuntu16.04下安装emacs
- 在eclipse中修改java web项目的名称
- 【itext学习之路】--2.设置pdf的一些常用属性
- linux man手册更新,linux man手册介绍【manual】
- FAT文件系统介绍以及FatFs的移植
- 7-20 打印九九口诀表 (15分) 下面是一个完整的下三角九九口诀表: 1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4
- html5研究背景及意义,基于HTML5的统计图表系统的研究与设计
- 邻接表生成模型头文件C语言
- Apple Pay入华一年:称雄美国在华败北
- 模拟退火算法SA求解连续函数极值
- 我竟然被骗了,原来我也是个好人
- geolocation.js
- 基于AT89C51单片机的电子时钟设计
- Android多个fragment懒加载的坑(卡顿)
- 11月27日云栖精选夜读:阿里毕玄:智能时代,运维工程师在谈什么? 飞
- [转]卡门的斗牛士之歌,歌词和歌曲背景
热门文章
- Android异常 Eclipse编译应用时出现 com.android.dx.cf.iface.parseexception
- 一年级下册计算机教学计划,最新人教版一年级下册教学计划
- 如何将confluence表格的第一行或者第一列固定
- excel概率密度函数公式_标准正态分布密度函数公式
- python二手房数据分析_使用python抓取分析链家网二手房数据
- Javascript飘窗代码
- lookAhead和RAdam 真香
- Excel列宽在哪里设置?Excel怎么设置行高和列宽
- 一代测序:又称Sanger测序(多分子,单克隆)
- Excel 函数 : 身份证号获取年纪等