Qt 模态和非模态对话框简述

Qt模态和非模态对话框简述

QDialog类是所有对话框窗口的基类。按照运行对话框是否可以和此程序 的其他界面进行交互,分为两类:模态、非模态

非模态

QDialog *dialog = new QDialog(this);
dialog->show();

模态

  1. 使用exec()显示的对话框,此种方式放到main()函数中则直接显示窗口,如果放到其他窗口的构造函数中则其他窗口不显示,只显示此dialog
		QDialog dialog(this);
		dialog.exec();
  1. 设置setModal(true),此种方式如果放到其他窗口的构造函数中,则原窗口照样显示,只是此dialog前置显示,且无法点击原窗口。
		QDialog *dialog = new QDialog(this);
		dialog->setModal(true);
		dialog->show();

setModal()函数类似,setWindowModality()函数也可以设置模态,其参数有三种选择

  • Qt::NonModal:不阻塞任何窗口,就是非模态
  • Qt::WindowModal:阻塞它的父窗口、所有祖先窗口以及它们的子窗口
  • Qt::ApplicationModal:阻塞整个应用程序的所有窗口
    注:setMOdal()函数默认设置的是Qt::ApplicationModal
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值