QDialog raise() 函数不起作用怎么办?

1 c++ qt qdialog qmainwindow

当按下按钮时,我从 QMainwindow 打开第二个 QDialog 窗口。这是我的代码

    newFile = new Dialog();  
    if(fStatus == 0)
    {
        newFile.show();
        fStatus = 1;
    }

    else if(fStatus == 1)
    {
        newFile.raise();
    }
Run Code Online (Sandbox Code Playgroud)

我想做的是,如果 QDialog 窗口已经打开并且再次按下按钮,我希望我的 QDialog 窗口移到前面。

我已经尝试使用 Qwidget 形式进行相同的操作,它正在工作,但是 Qdialog raise(); 不起作用,但在 Qwidget 的情况下,我无法正确捕获窗口关闭时 Qwidget 被破坏的信号。

Eli*_*ias 5

我没有测试它,但从我读到的内容中我发现了这一点:

\n\n
yourQWidget->show();\nyourQWidget->activateWindow();\nyourQWidget->raise();\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何在 QT 中将 Widget 置于最前面?\n

\n\n
QDialog *yourQDialog = new ...\nyourQDialog->setWindowFlags(yourQDialog->windowFlags() | Qt::WindowStaysOnTopHint);\nyourQDialog->show();\n
Run Code Online (Sandbox Code Playgroud)\n\n

将 QDialog 置于最前面

\n\n

另请看这个问题:Bring window to front -> raise(),show(),activateWindow() don\xe2\x80\x99t work\n

\n