大宇私人领地伊甸园丨宁愿做了后悔,也不要错过后悔[www.mrdayu.com]
注册

24小时联系邮箱:[email protected]

所有文章
大宇私人伊甸园: 首页 > 所有文章 > 编程人生 > 系统架构 > QT > 《大宇的Qt学习笔记》 > [003.03]模态和非模态对话框

[003.03]模态和非模态对话框

发布时间:2018/06/05 《大宇的Qt学习笔记》 标签模态和非模态对话框阅读:312

前言:

今天给大家介绍下模态和非模态对话框。

内容:

模态对话框
操作模式上来讲 
模态对话框在关闭对话框(OnOk,OnCancel,OnClose)这三个消息产生之前不可对此对话框以外的对话框进行操作  
当上面3个消息产生后系统负责删除模态对话框资源
非模态对话框可以进行其他操作 
必须在三个消息发生后自己在析构函数里回收此对话框资源

首先创建一个新项目:

我这里命名为:06_Dialog

添加必要的头文件,我们使用菜单栏的按钮去显示模态和非模态对话框

这里的menu创建与上一次的不同,如果不使用setMenuBar(),编译器将不会自己将MenuBar设置为自己的。

设置之后就显示出来了。

上一次介绍的方法是这样的,因为menuBar()直接将窗口的menu函数指针返回出来

创建一个按钮:模态对话框

使用Lambda函数,创建一个模态对话框

点击打开-》模态对话框

显示效果如上,还有后面的qDebug()是为了测试,模态对话框显示的时候,会不会执行到下面一段代码,结果显示不会。

因为模态对话框会一直无限循环。

创建一个非模态对话框按钮。

非模态对话框显示如上,但是这样有个致命的缺点,qt虽然有自动回收内存功能,但是必须在主窗口关闭才能自动析构。

添加这句代码就能在关闭子窗口的时候自动析构内存,内存溢出的危险就自然不会存在了。
The bottom line, for me, is simple.

Let’s hope it doesn’t take 500 years for a discipline of testing to becomes the standard for software developers.

From:dayu
相关推荐

您好!请登录

合作网站快捷登录:
点击取消回复

已有1评论

    大宇博客

    点击这里给我发消息 点击这里给我发消息 点击这里给我发消息 点击这里给我发消息