如何解决在MacOS上用cmd + h隐藏QWindow时无法显示QWindow
我有一个问题,当它被MacOS快捷方式隐藏时,无法启动我的应用程序窗口。在所有其他情况下都可以正常工作。
在我的应用中,我有1个主要的qWindow称为
QWindow* mMainWindow;
并将以下代码添加到任务栏按钮
mMenu->addAction(createAction("Show",[=] {
if (mMainWindow) {
mMainWindow->show();
mMainWindow->raise();
mMainWindow->requestActivate();
}
当我仅使用qt mMainWindow->hide()
然后将其升高时,mMainWindow
可以正常工作。当应用处于活动状态时,方法mMainWindow->isActive()
返回正确的true
状态,而在隐藏时,方法false
返回正确的状态。
但是当我在Mac“ cmd + h”中使用内置功能隐藏应用时,无论应用是否被隐藏,mMainWindow->isActive()
都会返回true
。调用我的操作项不会执行任何操作,mMainWindow
始终保持隐藏状态。
是否有解决此问题的解决方案?我见过有人建议使用QWidget
而不是QWindow
并致电widget->activateWindow()
,但这不是我可以使用的解决方案。
解决方法
我发现,如果您在致电hide()
之前先致电show()
,则show()
的行为将正确。
此问题的解决方法正在关注
mMenu->addAction(createAction("Show",[=] {
if (mMainWindow) {
mMainWindow->hide();
mMainWindow->show();
mMainWindow->raise();
mMainWindow->requestActivate();
}
}));
可能存在以下问题:当应用程序已经成为焦点时,单击Show
它将再次隐藏并显示,但这在我看来是可以接受的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。