macos - 在 MacOS 上使用 cmd + h 隐藏时无法显示() QWindow
问题描述
我有一个问题,当它被 MacOS 快捷方式隐藏时,我无法提升我的应用程序窗口。它在所有其他情况下都能正常工作。
在我的应用程序中,我调用了 1 个主 qWindow
QWindow* mMainWindow;
,并将以下代码添加到托盘按钮
mMenu->addAction(createAction("Show", [=] {
if (mMainWindow) {
mMainWindow->show();
mMainWindow->raise();
mMainWindow->requestActivate();
}
当我只使用 qtmMainWindow->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
它会再次隐藏并显示,但在我的情况下这是可以接受的问题。
推荐阅读
- ios - iOS Swift StoreKit 沙盒模式订阅已经订阅的订阅
- haskell - 如何使用 ToJSON 呈现给定模板文本和上下文的姜模板?
- php - 具有随机项规则的嵌套数组
- javascript - 使用 $or 和 $and 进行 MongoDB 聚合
- talend - 删除 Talend outputexcelfile 中的多余空间
- python - 在 Scikit Fuzzy 中使用循环生成规则
- php - 阻止花括号被放到新行上(封闭函数)
- python - 写入(包含的字典)指向文件的函数指针并将其读回
- javascript - 显示特定优先任务(选择以获取特定任务列)
- python-3.x - 混合了python3.8和anaconda python3.8