【问题标题】:How to QDialog raise() function is not working?QDialog raise() 函数如何不起作用?
【发布时间】:2017-09-11 08:22:43
【问题描述】:

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

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

    else if(fStatus == 1)
    {
        newFile.raise();
    }

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

我已经尝试过使用相同的 Qwidget 表单,它正在工作,但 Qdialog raise();不工作,但在 Qwidget 的情况下,我无法在正确关闭寡妇时捕获 Qwidget 破坏信号。

【问题讨论】:

  • 如果将窗口设置为对话框的父级会发生什么?
  • 请提供MVCE。

标签: c++ qt qmainwindow qdialog


【解决方案1】:

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

yourQWidget->show();
yourQWidget->activateWindow();
yourQWidget->raise();

How to Bring the Widget Bring to front in QT?

QDialog *yourQDialog = new ...
yourQDialog->setWindowFlags(yourQDialog->windowFlags() | Qt::WindowStaysOnTopHint);
yourQDialog->show();

Bring QDialog to front

也看看这个问题:Bring window to front -> raise(),show(),activateWindow() don’t work

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多