Не удается показать () QWindow, когда он был скрыт с помощью cmd + h в MacOS
У меня проблема из-за того, что я не могу открыть окно приложения, если оно было скрыто с помощью ярлыка MacOS. Во всех остальных случаях он работает корректно.
В моем приложении у меня есть 1 основное окно qWindowQWindow* 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()
но это не решение, которое я могу использовать в моем случае.
1 ответ
Я обнаружил, что если ты позвонишь
hide()
перед звонком
show()
,
show()
будет вести себя правильно.
Обход этой проблемы следующий
mMenu->addAction(createAction("Show", [=] {
if (mMainWindow) {
mMainWindow->hide();
mMainWindow->show();
mMainWindow->raise();
mMainWindow->requestActivate();
}
}));
может возникнуть проблема, когда приложение уже находится в фокусе, и вы нажимаете
Show
он будет, скрываться и показываться снова, но в моем случае это приемлемая проблема.