2016-11-08 113 views
0

我正在開發簡單的托盤應用程序,需要在所有打開的窗口上顯示,包括在OSX上以全屏模式打開某個窗口時的情況。如何在osx上全屏打開的窗口上顯示qt窗口?

我使用這些代碼在所有其他打開的窗口下彈出我的應用程序窗口。

//used flags 
    flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint 

    //code for showing window 
    mainWindow.show() 
    mainWindow.raise() 
    mainWindow.requestActivate() 

更新:SOLUTION

我找到解決辦法只是通過設置正確的標誌Qt.Tool而不是Qt.WindowStaysOnTopHint。 所以如果有人有同樣的問題,只是不要同時使用這個標誌

+0

這也不行? – GrecKo

+0

不,這種方法僅對單個桌面有幫助,但是當在osx上以全屏方式打開窗口時,它將在新桌面中打開。我的任務是展示我的全部視窗。 –

回答

0

使用

void QWidget::setWindowState(Qt::WindowStates windowState) 

和全屏設置 「Qt::WindowFullScreen」。

你知道嗎你的QMainWindow是從QWidget派生的。

所以你可以使用上面的函數。

事情是這樣的:

mainWindow->setWindowState(Qt::WindowFullScreen) 
+0

抱歉,這段代碼是設置窗口全屏模式。在我的情況下,我不必全屏顯示,而是需要在全新桌面上顯示以全屏方式打開的窗口updon窗口。 –

+0

嗯...大概拿到另一個窗口....獲取左上和右下的位置。並在放映前設置爲當前窗口。 – Naidu

+0

使用類似移動或恢復幾何的東西 – Naidu