在Qt中,如何使窗口成为当前窗口?

yan*_*nce 9 qt qt4

我的QT应用程序有多个窗口,有时,即使窗口已经打开但在其他窗口下隐藏,用户将选择一个选项从主窗口菜单栏中打开一个,在这种情况下我想简单地将其启动并使其成为当前窗口一.现在使用QWidget-> raise使这个窗口在所有其他窗口之上,但它不会选择它,这就是我需要做的.我尝试过QWidget-> setFocus但是没有做任何事情.在平均时间我使用QWidget-的组合>关闭之后QWidget->节目,但我想知道是否有与使用命令 - >加薪.

我试过了:

        pMission->raise();
        pMission->setFocus(Qt::ActiveWindowFocusReason);
Run Code Online (Sandbox Code Playgroud)

但它没有用,所以我使用:

        pMission->close();
        pMission->show();
Run Code Online (Sandbox Code Playgroud)

Mas*_*ang 10

你有没有试过QWidget :: activateWindow?

从帮助文件,这个功能将来

将包含此窗口小部件的顶级窗口小部件设置为活动窗口.活动窗口是具有键盘输入焦点的可见顶级窗口.


pre*_*ett 5

在带有 Qt 4.8.0 的 MacOS Lion 上,raise() 是唯一对我有用的方法。activateWindow() 和 setFocus() 没有。

(我没有足够的业力来评论梅森的答案)