Qt 模态对话框和非模态对话框.doc

Qt 模态对话框和非模态对话框.doc

ID:57690234

大小:21.00 KB

页数:2页

时间:2020-09-01

Qt 模态对话框和非模态对话框.doc_第1页
Qt 模态对话框和非模态对话框.doc_第2页
资源描述:

《Qt 模态对话框和非模态对话框.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、详解Qt模态对话框和非模态对话框2011-07-0111:33佚名互联网 我要评论(0) 字号:T 

2、 T如果从线程角度来讲,模态对话框实际上是线程阻塞的,也就是子对话框是一个线程,但是在创建这个子线程之后,父窗口就阻塞了;模态对话框则不是阻塞型的线程模型,父子线程可以并行运行。AD:Qt模态对话框和非模态对话框是本文介绍的内容,本文认为本篇是一篇很有意思的文章,不多说,我们先来看内容。模态对话框就是指在子对话框弹出时,焦点被强行集中于该子对话框,子对话框不关闭,用户将无法操作其他的窗口。非模态相反,用户仍

3、然可以操作其他的窗口,包括该子对话框的父对话框。如果从线程角度来讲,模态对话框实际上是线程阻塞的,也就是子对话框是一个线程,但是在创建这个子线程之后,父窗口就阻塞了;模态对话框则不是阻塞型的线程模型,父子线程可以并行运行。和所有流行的图形类库一样,Qt也提供了创建模态和非模态对话框的机制。在Qt中创建模态对话框,主要用到了QDialog的exec函数:1.SonDialog dlg(this); 2.int res = dlg.exec(); 3.if (res == QDialog::Accepted) 

4、4.{ 5.    QMessageBox::information(this, "INFORMATION", "You clicked OK button!"); 6.} 7.if (res == QDialog::Rejected) 8.{ 9.    QMessageBox::information(this, "INFORMATION", "You clicked CANCEL button!"); 10.} 正如上面代码所显示的,可以通过exec函数的返回值来判断用户点击了哪个按钮使得模态对话框退

5、出的,这可以使得我们能够根据用户的不同行为在推出退出模态对话框之后采取不同的处理方法。在Qt中创建非模态对话框,主要用到了QDialog的show函数:1.SonDialog *dlg; 2.dlg = new SonDialog(this); 3.dlg->show(); 由上面代码,细心的读者可能就会问了,既然new了,如果不delete,那么内存不就存在了泄露的问题了吗?确实如此!所以,我们希望该Qt窗口在退出时自动能够delete掉自己,因此,我们在SonDialog的构造函数里,添加这样的一句代码

6、:1.setAttribute (Qt::WA_DeleteOnClose); 这样,我们的SonDialog就能够在它退出时自动的delete掉自己了,不会再造成内存泄漏问题。小结:关于 Qt模态对话框和非模态对话框的内容介绍完了,希望本文对你有所帮助!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。