Qt对话框QDialog之模态和非模态对话框

一、QDialog

QDialog类是所有对话框窗口类的基类。对话框窗口是一个经常用来完成一个短小任务或者和用户进行简单交互的顶层窗口。对话框常被分成两类,模态的(modal)和非模态的(modeless)。

1.模态

模态对话框就是没有关闭它之前,不能再与同一个应用程序的其他窗口进行交互。
代码如下(示例):

//1
QDialog *d = new QDialog(this,Qt::WindowStayOnTopHint);
d->exec();

//2
QDialog *d = new QDialog(this,Qt::WindowStayOnTopHint);
d->setModal(true);
d->show();

//3
QDialog *d = new QDialog(this,Qt::WindowStayOnTopHint);
//d->setWindowModality(Qt::ApplicationModal);阻塞整个应用程序的所有窗口 
d->setWindowModality(Qt::WindowModal);//阻塞他的父窗口和所有祖先窗口以及他们的子窗口
d->show();

2.非模态

非模态对话框,既可以与它交互,也可以与同一个程序中其它窗口交互。
代码如下(示例):

//1
QDialog *d = new QDialog(this,Qt::WindowStayOnTopHint);
d->show();

//2
QDialog *d = new QDialog(this,Qt::WindowStayOnTopHint);
d->setWindowModality(Qt::NonModal);
d->show();

***模态对话框因调用exec()与show()会有所不同,调用show()函数会立即将控制权交给调用者,那么程序可以继续执行下去。而调用exec()函数却不同,它只有当对话框被关闭时才会返回。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值