今天看视频,学习好半模式对话框,好新奇哟,这里记录下来。
半模式对话框,介于模式对话框和飞模式对话框之间。半模式对话框会像模式对话框一样阻塞主界面的事件响应,同时,半模式对话框会像非模态对话框一样,立即执行后面的程序。
半模式对话框,先调用setModal(true),或者setWindowModality(true),再调用show()。
setModal(true) 和 setWindowModality(true) 的区别: 前者会像模态对话框的效果---双击主界面时,模态对话框会闪烁,并且发出声音。 而后者只是达到模式对话框的效果,双击主界面没有任何反应。
QDialog * dlg = new QDialog(&w); dlg->setWindowTitle(QObject::tr("半模式对话框")); dlg->setModal(true); //我更推荐 //dlg->setWindowModified(true); dlg->show(); qDebug()<<QStringLiteral("半模态对话框显示后,立即执行后面的的代码,而不用等待半模态对话框被关闭。 "); qDebug()<<QStringLiteral("但是,在半模态对话框未关闭的情况下,会阻塞主窗体的消息");
模态对话框调用exec()显示; 非模态对话框调用show()显示。