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();


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

1、对QWidget设置模态窗口有两种方法: 第一种是在构造函数中        setWindowFlags(Qt::FramelessWindowHint);        setAttri...
  • iamplane
  • iamplane
  • 2017年07月25日 19:04
  • 317

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

模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在。又有叫法是称为模式对话框,无模式对话框等。 所谓模态对话框就是...
  • liuligui5200
  • liuligui5200
  • 2015年08月28日 14:12
  • 1040

Qt学习之路三(模态和非模态对话框)

Qt中QDialog类是所有对话框的基类,对话框窗口是一个经常用来完成一个短小任务和用户进行简单交互的顶层窗口。对话框被分为两类模态的和非模态的。   模态对话框就是没有关闭它之前,不能再与同一个应...
  • hjf161105
  • hjf161105
  • 2017年02月14日 15:32
  • 473

Qt - QDialog,QWidget实现模态及非模态

转载自:  http://www.360doc.com/content/15/0825/16/20016257_494656595.shtml 在Qt中QDialog为“窗口”,而QWidget为“...
  • wadfji
  • wadfji
  • 2017年01月05日 20:03
  • 1705

Qt销毁非模态对话框

很多时候需要非模态对话框:
  • c_tianzi
  • c_tianzi
  • 2014年05月29日 00:41
  • 1937

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

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

QWidget实现模态及非模态

1、对QWidget设置模态窗口有两种方法: 第一种是在构造函数中        setWindowFlags(Qt::FramelessWindowHint);        setAttribut...
  • Maybe______
  • Maybe______
  • 2016年10月31日 16:37
  • 4258

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

简述关于模式和非模式,相信大家都比较熟悉,但其中有一个可能很多人都比较陌生,介于两者之间的状态,称之为“半模式“。下面以实际应用为例来介绍一下这几种状态。简述 模式对话框 描述 效果 源码 非模式对话...
  • u011012932
  • u011012932
  • 2016年04月05日 19:17
  • 5850

Qt 之 模态、非模态、半模态窗口的介绍及 实现QDialog的exec()方法

一、简述先简单介绍一下模态与非模态对话框。模态对话框 简单一点讲就是在弹出模态对话框时,除了该对话框整个应用程序窗口都无法接受用户响应,处于等待状态,直到模态对话框被关闭。这时一般需要点击对话框中...
  • GoForwardToStep
  • GoForwardToStep
  • 2016年12月15日 19:47
  • 4946

QT 模态与非模态对话框的创建与退出

1、模态对话框与非模态对话框 模态对话框就是指在子对话框弹出时,焦点被强行集中于该子对话框,子对话框不关闭,用户将无法操作其他的窗口。非模态对话框则相反,用户仍然可以操作其他...
  • hebbely
  • hebbely
  • 2017年01月09日 09:51
  • 1651
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Qt模态与非模态
举报原因:
原因补充:

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