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

问题描述 投票:0回答:2

我的 QT 应用程序有多个窗口,有时,即使窗口已经打开但隐藏在其他窗口下,用户也会选择一个选项从主窗口菜单栏中打开一个窗口,在这种情况下,我只想将其打开并使其成为当前的一个。 现在使用 QWidget->raise 使该窗口位于所有其他窗口之上,但它没有选择它,这就是我需要做的。 我尝试了 QWidget->setFocus 但这没有任何作用。 同时,我使用 QWidget->close 和 QWidget->show 的组合,但我想知道是否有一个命令可以与 ->raise 一起使用。

我尝试过:

        pMission->raise();
        pMission->setFocus(Qt::ActiveWindowFocusReason);

但它不起作用,所以我用了:

        pMission->close();
        pMission->show();
qt qt4
2个回答
15
投票

你尝试过 QWidget::activateWindow 吗?

从帮助文件中,这个函数将会

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


5
投票

在带有 Qt 4.8.0 的 macOS Lion 上,

raise()
是唯一对我有用的。
activateWindow()
setFocus()
没有。

© www.soinside.com 2019 - 2024. All rights reserved.