2012-09-16 40 views
1

隨着Qt 4.8,我想設置我的框架「留在上面」。 Qt方式並不完美,因爲它需要重新創建包含醜陋閃爍的窗口。與Qt在OSX上保持最佳狀態

在Win32下,它存在一個本地方法:

SetWindowPos(winId(), <HWND_TOPMOST:HWND_NOTOPMOST>, 0,0,0,0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE); 

但是我有什麼代碼在OS-X使用?

回答

7

這是我用來設置跨Linux,Mac和Windows的窗口最上面的代碼:

setWindowFlags(
    #ifdef Q_OS_MAC 
     Qt::SubWindow | 
    #else 
     Qt::Tool | 
    #endif 
     Qt::FramelessWindowHint | 
     Qt::WindowSystemMenuHint | 
     Qt::WindowStaysOnTopHint 
    ); 

你可以看到通過克隆這個倉庫工作的代碼演示:我建這個https://github.com/pcmantinker/Tray-Notification-System

存儲庫,以製作類似於Mac OS X的咆哮的通知系統。它也進行了優化,以便在運行全屏應用程序時不會竊取焦點,如果您正在玩遊戲或觀看視頻,這非常棒。它應該給你一個開始。

相關問題