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相关推荐

  1. qt: exec()的用法,accept()和accepted的概念

    转载:http://blog.csdn.net/xdlichen/article/details/46374517 本篇,会重点讲述模式对话框,以及exec()的用法,accept()和accepte ...

  2. Qt 5.12 编写多窗口程序(新手手把手教学)

    目录 实现功能: 实现原理: 实现过程: 1.首先新建 Qt工程,工程名为 NewForm,Base class 选为 QWidget.建立好后工程文件列表如下图. 2.新建对话框类,如下图,在新建中 ...

  3. qt 新窗口show后马上关闭_qt学习(四)主窗选钮,显示新窗口。

    游戏有选区这个习惯, 当然,我特指<冒险岛>了,有的时候就是打开一个主屏幕上五个按钮让你点击进入, 甚至有的时候进去了还要选哪个频道,游戏服务器都得分区,频道来完成功能.现在我们先进入想选 ...

  4. 关于Qt中QDialog对话框调用exec()函数界面退出造成僵尸程序问题

    关于Qt中QDialog对话框调用exec函数产生的问题 问题一: 问题描述: 原因分析: 解决方案: 问题二: 问题描述: 求助:关于这个问题,学识尚浅,求大佬分析一波 问题一: QDialog对话 ...

  5. Qt中的QDialog

    文章目录 1 Qt中的QDialog 1.1 QDialog简介 1.2 模态对话框和非模态对话框 1.3 对话框的返回值 2 登陆对话框实例分析 2.1 分析 2.2 代码实现 2.3 登录对话框的 ...

  6. Qt窗口部件——对话框QDialog

    Qt对话框QDialog 1. 模态和非模态对话框 2. 多窗口切换 2.1 信号和槽 2.2 练习信号和槽例程 2.3 自定义对话框 3. 标准对话框 3.1 颜色对话框 3.2 文件对话框 3.3 ...

  7. Qt5开发学习总结(三)——窗口部件的使用(QWidget和QDialog)

    窗口部件 QT提供的默认基类只有QMainWindow.QWidget.和QDialog这三种,这三种窗体也是用的最多的,QMainWindow是带有菜单栏和工具栏的主窗口类,QDialog是各种对话 ...

  8. 9.QT-标准对话框

    Qt提供的可复用的标准对话框,全部继承自QDialog类,如下图所示: QMessageBox:信息对话框,用于显示信息.询问问题等: QFileDialog:文件对话框 QColorDialog:颜 ...

  9. QT中如何读写ini配置文件

    本文首发于「3D视觉工坊」知识星球. 如图1所示,我们需要在QT界面中实现手动读取参数存放的位置,那么我们该如何做呢? 方法:读取ini格式的配置文件,实现路径的写入与读取. 第一步:界面构造函数中, ...

  10. 三、Qt Creator登录对话框

    实现功能: 在弹出对话框中填写用户名和密码,按下登录按钮,如果用户名和密码均正确则进入主窗口,如果有错则弹出警告对话框. 实现原理: 通过上节的多窗口原理实现由登录对话框进入主窗口,而用户名和密码可以 ...

最新文章

  1. 在centos上通过yum直接安装最新版gcc和开发工具
  2. 计算机请说明您的专业知识与技能,湖南省2012对口招生考试计算机类专业综合考试大纲...
  3. javascript dom节点x
  4. Linux安装minikube命令整理
  5. ubuntu16.04下安装emacs
  6. 在eclipse中修改java web项目的名称
  7. 【itext学习之路】--2.设置pdf的一些常用属性
  8. linux man手册更新,linux man手册介绍【manual】
  9. FAT文件系统介绍以及FatFs的移植
  10. 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
  11. html5研究背景及意义,基于HTML5的统计图表系统的研究与设计
  12. 邻接表生成模型头文件C语言
  13. Apple Pay入华一年:称雄美国在华败北
  14. 模拟退火算法SA求解连续函数极值
  15. 我竟然被骗了,原来我也是个好人
  16. geolocation.js
  17. 基于AT89C51单片机的电子时钟设计
  18. Android多个fragment懒加载的坑(卡顿)
  19. 11月27日云栖精选夜读:阿里毕玄:智能时代,运维工程师在谈什么? 飞
  20. [转]卡门的斗牛士之歌,歌词和歌曲背景

热门文章

  1. Android异常 Eclipse编译应用时出现 com.android.dx.cf.iface.parseexception
  2. 一年级下册计算机教学计划,最新人教版一年级下册教学计划
  3. 如何将confluence表格的第一行或者第一列固定
  4. excel概率密度函数公式_标准正态分布密度函数公式
  5. python二手房数据分析_使用python抓取分析链家网二手房数据
  6. Javascript飘窗代码
  7. lookAhead和RAdam 真香
  8. Excel列宽在哪里设置?Excel怎么设置行高和列宽
  9. 一代测序:又称Sanger测序(多分子,单克隆)
  10. Excel 函数 : 身份证号获取年纪等