Qt模态界面设置setWindowModality禁止其他界面响应

一、模态与非模态

模态:启动模态界面时,例如弹出对话框强制用户从其他正在进行的业务中聚焦到当前对话框,除了该对话框整个应用程序窗口都无法接受用户响应,无法切换界面,无法切换当前Qt应用。这可以保证用户按照自己设计的操作逻辑进行动作。只有关闭和退出该模态界面,才可以访问本应用程序的其他界面和功能。

非模态:与模态相反,默认状态为非模态,即可以随意切换,可以在同一应用下的各个窗口界面任意切换。

半模态:介于二者之间,冻结窗口界面,但其他应用继续执行响应。

二、使用方法

Qt中的QWidget对象自带setWindowModality(type)方法,用以设置窗口模态类型。

参数type可选为一下三种:

Qt::NonModal 非模态:正常模式
Qt::WindowModal 半模态:窗口级模态对话框,阻塞父窗口、父窗口的父窗口及兄弟窗口。
Qt::ApplicationModal 模态:应用程序级模态对话框,阻塞整个应用程序的所有窗口。
三、代码示例

void MainWindow::on_toolButton_NewWidget_clicked()
{
    Widget_ui *new_ui = new Widget_ui(this);//创建新界面窗口
    new_ui->setWindowModality(Qt::ApplicationModal);//设置模态
    connect(new_ui,&new_ui->Tx_NewSig,this,&MainWindow::Rx_NewSig);//绑定当前界面的信号槽
    new_ui->show();//显示当前新创建的界面窗口
}
 
————————————————
版权声明:本文为CSDN博主「jianwang16」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010058695/article/details/101011907

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值