我的QT应用程序有多个窗口,有时候,即使窗口已经打开但在其他窗口下隐藏,用户也会选择从主窗口菜单栏打开一个选项,在这种情况下我想简单地将它打开并制作它是现在的。现在使用QWidget-> raise使这个窗口在所有其他窗口之上,但它不会选择它,这就是我需要做的。我尝试了QWidget-> setFocus,但它没有做任何事情。同时我使用QWidget-> close然后QWidget-> show的组合,但我想知道是否有一个命令与 - > raise一起使用。
我试过了:
pMission->raise();
pMission->setFocus(Qt::ActiveWindowFocusReason);
但它没有用,所以我用过:
pMission->close();
pMission->show();
答案 0 :(得分:9)
你有没有试过QWidget :: activateWindow?
从帮助文件中,此功能将
将包含此小部件的顶级窗口小部件设置为活动窗口。 活动窗口是可见的顶级窗口,具有键盘输入焦点。
答案 1 :(得分:3)
在使用Qt 4.8.0的MacOS Lion上,raise()是唯一对我有用的人。 activateWindow()和setFocus()没有。
(我没有足够的业力来对梅森的回答发表评论)