2015-04-17 99 views
0

我想在Mac OSX上顯示全屏QDialog。如何通過OSX Dock和OSX菜單顯示QDialog窗口?

我想這樣做:

QDialog* d = new QDialog(nullptr, Qt::Window); 
d->showFullScreen(); 
d->activateWindow(); 

它的工作原理,但這種對話創造了新的OSX屏幕:

I don't want this

我想這樣做:

QDialog* d = new QDialog(nullptr, Qt::SplashScreen | Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); 
d->setWindowState(Qt::WindowFullScreen); 
d-show(); 

它不創建新的屏幕,但QDialog顯示在OSX Dock和OSX菜單下:

enter image description here

如何解決我的問題?

+0

你有沒有試過提高窗戶? –

回答

1

你所看到的是OS X的正常行爲。如果你想要一個全屏應用程序,沒有dock和菜單欄,那麼有一個單獨的桌面屏幕(空格)是可接受的方法。

另一種方法是最大化對話框的大小並將底座設置爲隱藏,但仍留在頂部的菜單並更改用戶對底座顯示方式的偏好不是好用戶體驗。

+0

這不是事實。例如:Joxi應用程序:它在Qt上工作,並在同一屏幕上顯示菜單和停靠面板上的對話框:http://joxi.ru/V2VY6EYUejXQmv(在根屏幕上:http://joxi.ru/DrlpKRpsElzPrP) – fhdnsYa

+0

@fhdnsYa我甚至不明白你想要什麼。在你提到的兩個例子中,菜單和dock都可以在應用程序後面看到。 –