个人技术分享

一、

模态对话框

在弹出模态对话框时,除了该对话框整个应用程序窗口都无法接受用户响应,处于等待状态,直到模态对话框被关闭 

使用exec 打开

非模态对话框

又叫做无模式对话框,即弹出非模态对话框时,用户仍然可以对其他窗口进行操作,不会因为这个对话框未关闭就不能操作其他窗口。

使用show 打开

如果是非模态,但是想要窗口永远在最前面:

        setWindowFlags(m_waterAndWasteDlg->windowFlags() | Qt::WindowStaysOnTopHint)

如果是非模态,窗口不在最前面时,希望其变到最前面

        m_waterDlg->activateWindow();
        m_water->setWindowState((m_waterAndWasteDlg->windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);

半模态对话框

半模态对话框区别于模态与非模态对话框,或者说是介于两者之间,也就是说半模态对话框会阻塞窗口的响应,但是不会影响后续代码的执行,注意要设置父对象才能生效,否则还是非模态

使用open 打开