一、
模态对话框
在弹出模态对话框时,除了该对话框整个应用程序窗口都无法接受用户响应,处于等待状态,直到模态对话框被关闭
使用exec 打开
非模态对话框
又叫做无模式对话框,即弹出非模态对话框时,用户仍然可以对其他窗口进行操作,不会因为这个对话框未关闭就不能操作其他窗口。
使用show 打开
如果是非模态,但是想要窗口永远在最前面:
setWindowFlags(m_waterAndWasteDlg->windowFlags() | Qt::WindowStaysOnTopHint)
如果是非模态,窗口不在最前面时,希望其变到最前面
m_waterDlg->activateWindow();
m_water->setWindowState((m_waterAndWasteDlg->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);
半模态对话框
半模态对话框区别于模态与非模态对话框,或者说是介于两者之间,也就是说半模态对话框会阻塞窗口的响应,但是不会影响后续代码的执行,注意要设置父对象才能生效,否则还是非模态
使用open 打开