Qt模态与非模态

原创 2013年06月17日 22:39:32

模态是指当子窗口弹出时,焦点始终被强行集中于子窗口,只要子窗口不退出,焦点就不会被释放。非模态正好相反。

从线程角度讲,模态子窗口的线程是阻塞的,父、子窗口各有一个线程,当创建子窗口时,父线程就被子线程阻塞掉;非模态线程不是阻塞型的,父、子线程可以并行运行。

在Qt的模态中,主要用到QDialog的exec()方法:


SonDialog dlg(this);
int res = dlg.exec();
if (res == QDialog::Accepted)
{
    QMessageBox::information(this, "INFORMATION", "You clicked OK button!");
}
if (res == QDialog::Rejected)
{
    QMessageBox::information(this, "INFORMATION", "You clicked CANCEL button!");
}

通过exec()的返回值判断用户触发的是哪个按钮。

非模态,主要用到了QDialog中的show()方法:


SonDialog *dlg;
dlg = new SonDialog(this);
dlg->show();


相关文章推荐

Qt4中的模态与非模态对话框用法总结

转自:http://blog.csdn.net/qter_wd007/archive/2010/03/08/5358049.aspx模态对话框(Modal Dialog)与非模态对话框(Modeles...

Qt 模态与非模态对话框

模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在。又有叫法是称为模式对话框,无模式对话框等。 所谓模态对话框就是在...

Qt下的模态与非模态对话框

转:http://blog.csdn.net/hufeng825/archive/2010/07/27/5769093.aspx 模态对话框(Modal Dialog)与非模态对话框(Modeles...

Qt4中的模态与非模态对话框用法总结

模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在。又有叫法是称为模式对话框,无模式对话框等。 所谓模态对话框就是...

Qt 之QDialog的模态与非模态

模态对话框:当焦点是该对话框时,在该对话框关闭之前,操作只能在该对话框内进行 非模态对话框:当窗口是该对话框时可切换焦点到任意窗口 下面列举几种创建两种对话框的方法: 模态对话框: 方法一:#...

Qt 窗体的模态与非模态

概念模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在。又有叫法是称为模式对话框,无模式对话框等。 1. 模态窗体...

Qt 界面的模态与非模态设置

1、对QWidget设置模态窗口有两种方法: 第一种是在构造函数中        setWindowFlags(Qt::FramelessWindowHint);        setAttri...

QT 主窗口和非模态对话框切换 以及消息通信

项目中要用到非模态窗口,程序一开始弹出一个主窗口来,点击一个按钮的时候弹出一个非模态窗口,虽然是一个比较简单的需求,但是在实现的过程中有各种问题。列一下自己遇到的问题并且说一下自己的解决方法。 1) ...

Qt销毁非模态对话框

很多时候需要非模态对话框:
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt模态与非模态
举报原因:
原因补充:

(最多只允许输入30个字)