簡體   English   中英

在 MacOS 上使用 cmd + h 隱藏時無法顯示()QWindow

[英]Can't show() QWindow when it was hidden with cmd + h on MacOS

我有一個問題,當它被 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並調用QWindow widget->activateWindow()但這不是我可以使用的解決方案。

我發現如果您在調用show()之前調用hide() show()show()將正常運行。

此問題的解決方法如下

mMenu->addAction(createAction("Show", [=] {
        if (mMainWindow) {
            mMainWindow->hide();
            mMainWindow->show();
            mMainWindow->raise();
            mMainWindow->requestActivate();
        }
    }));

當應用程序已經處於焦點時,可能會出現問題,並且您單擊“ Show ,然后隱藏並再次顯示,但在我的情況下這是可以接受的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM