今天看视频,学习好半模式对话框,好新奇哟,这里记录下来。

半模式对话框,介于模式对话框和飞模式对话框之间。半模式对话框会像模式对话框一样阻塞主界面的事件响应,同时,半模式对话框会像非模态对话框一样,立即执行后面的程序。

半模式对话框,先调用setModal(true),或者setWindowModality(true),再调用show()。

setModal(true) 和 setWindowModality(true) 的区别: 前者会像模态对话框的效果---双击主界面时,模态对话框会闪烁,并且发出声音。 而后者只是达到模式对话框的效果,双击主界面没有任何反应。

QDialog * dlg = new QDialog(&w);
dlg->setWindowTitle(QObject::tr("半模式对话框"));
dlg->setModal(true); //我更推荐
//dlg->setWindowModified(true);
dlg->show(); qDebug()<<QStringLiteral("半模态对话框显示后,立即执行后面的的代码,而不用等待半模态对话框被关闭。 ");
qDebug()<<QStringLiteral("但是,在半模态对话框未关闭的情况下,会阻塞主窗体的消息");

模态对话框调用exec()显示;  非模态对话框调用show()显示。

2019-08-26

今天看豆子网站对话框部分,然后回头看了看过去写的博客(上面的内容), 觉得好新奇,又好奇怪,留着它不删除。下面写一下新的收获:

Qt支持模态和非模态对话框。 并且,Qt支持的模态对话框有两种,

1-应用程序级模态,调用QApplication::exec()

 2-窗口级别模态,调用QDialog::open()

当然了,非模态调用show()

      QDialog的两种创建方式,对内存的影响:

1-栈上创建, 离开局部作用域,内存销毁

2-堆上创建,如果指定parent,则parent销毁时,销毁对话框; 如果不指定parent,有两种处理方式:

2.1-在合适的地方判断并delete(),或deleteLater()

2-2-设置对话框属性,对话框关闭时,自动销魂内存,调用QDialog::setAttribute(Qt::WA_DeleteOnClose);

               

              作操作,show()非模态显示的对话框,可以调用QDialog::setAttribute(Qt::WA_ShowModal, true),达到模态效果。

    

Qt 半模式对话框的更多相关文章

  1. Qt之模式、非模式、半模式对话框

    简述 关于"模式"和"非模式"对话框,相信大家都比较熟悉,但其中有一个可能很多人都比较陌生,介于两者之间的状态,我们称之为"半模式". 简述 ...

  2. Qt对话框之二:模态、非模态、半模态对话框

    一.模态对话框 模态对话框:阻塞同一应用程序中其它可视窗口输入的对话框.模态对话框有自己的事件循环,用户必须完成这个对话框中的交互操作,并且关闭了它之后才能访问应用程序中的其它任何窗口. 显示模态对话 ...

  3. QT Qdialog的对话框模式以及其关闭

    模式对话框 描述 阻塞同一应用程序中其它可视窗口输入的对话框.模式对话框有自己的事件循环,用户必须完成这个对话框中的交互操作,并且关闭了它之后才能访问应用程序中的其它任何窗口.模式对话框仅阻止访问与对 ...

  4. Qt之模式、非模式对话框

    关于“模式”和“非模式”对话框,相信大家都比较熟悉,但其中有一个可能很多人都比较陌生,介于两者之间的状态,我们称之为“半模式“. 模式对话框 描述 阻塞同一应用程序中其它可视窗口输入的对话框.模式对话 ...

  5. QT设计UI:QT模式对话框打开文件

    使用QT模式对话框,并使显示框 为背景色: 方法使用了QCheckBox *native;   #include <QCheckBox> 初始化函数代码: //设置默认打开图像位置 nat ...

  6. QT学习 之 对话框 (四) 字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)

    QMessageBox类: 含有Question消息框.Information消息框.Warning消息框和Critical消息框等 通常有两种方式可以来创建标准消息对话框: 一种是采用“基于属性”的 ...

  7. 第八章 Qt GUI之对话框使用

    第八章 Qt GUI之对话框使用 对话框可以是模态(modal)的或非模态(modeless)两种.当我们在一个用户界面程序里面对一个对话框(比如选择文件对话框)的操作没有结束前,界面的其他窗口无法操 ...

  8. QT 打开文件对话框汇总

    Qstring fileName = QFileDialog::getOpenFileName(this, tr("open file"), " ",  tr( ...

  9. JAVA的模式对话框和非模式对话框

    周末的时候,一位网友让我帮他把他的无模式对话框改成有模式对话框. 界面是由swing制作的,都是JFrame,我从来没有接触过swing编程.大致的代码还是看的懂,很多都和C#很相似. 然后就去查资料 ...

随机推荐

  1. Git分支操作——查看、新建、删除、提交、合并

    查看分支 1 查看本地分支 $ git branch   2 查看远程分支 $ git branch -r     创建分支 1 创建本地分支 $ git branch branchName 2 切换 ...

  2. QT工程文件的条件编译选择与额外的编译参数配置

    QTCreator打开.pro工程文件后,依据不同的构建套件创建项目组.在项目组中,点开构建步骤的“详情”,增加一个自己的宏定义,比如: DEFINES+=IMX_287 然后,我们在.pro文件中添 ...

  3. [原创]Fashion汽车定位器拆解

    随着共享单车的爆发增长,定位方案被彻底激活.当下主流的共享单车都采用了MTK2503的方案(后续再详细分解),本文针对某商城热卖的汽车定位器进行拆解分析. 第一部分,定位器外观. 第二部分,拆解开壳, ...

  4. ajax方法如何给全局变量赋值

    在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:t ...

  5. [2]朝花夕拾-JAVA注解、PHP注解?

    一.Java注解概述 注解,也被称为元数据,为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后某个时刻非常方便地使用这些数据. 注解在一定程度上是把元数据与源代码文件结合在一起,而不是保存 ...

  6. RTX临界段,中断锁与任务锁

    临界段         代码的临界段也称为临界区,一旦这部分代码开始执行,则不允许任何中断打断.为确保临界段代码的执行不被中断,在进入临界段之前须关中断,而临界段代码执行完毕后,要立即开中断.    ...

  7. AS 常用快捷键

    上篇中我们讲了Android Studio如何添加插件,这篇我们讲讲AS的快捷键,这里我说明的快捷键都是最最实用的,希望刚刚加入AS的朋友尽快的熟悉一下这几个快捷键,这样可以帮助你提高coding的效 ...

  8. Springboot 文件上传(带进度条)

    1. 相关依赖 pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...

  9. 基于Schema配置切面

        使用基于Schema的切面定义后,切点.增强类型的注解信息从切面类中剥离出来,原来的切面类也就蜕变为真正意义上的POJO了. 1.一个简单切面的配置 基于Schema配置的切面示例: < ...

  10. 网站favicon图标的显示问题

    今天在微信开发者工具发现一个错误,说是找不到favicon.ico这个文件. 这个就是标签式浏览器显示在页面title前面的小图标,移动端也没什么用,所以一直没在意,今天有空就研究了一下,发现还是有点 ...