Qt 4.8 では、フレームを「最上位に」設定したいと考えています。醜いちらつきを伴うウィンドウを再作成する必要があるため、Qt の方法は完璧ではありません。
Win32 では、ネイティブ メソッドが存在します。
SetWindowPos(winId(), <HWND_TOPMOST:HWND_NOTOPMOST>, 0,0,0,0, SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);
しかし、OS-X で使用する必要があるコードは何ですか?
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
このリポジトリを構築して、MacOSXのGrowlに似た通知システムを作成しました。また、フルスクリーンアプリケーションを実行しているときにフォーカスを奪わないように最適化されています。これは、ゲームをプレイしているときやビデオを見ているときに最適です。それはあなたにスタートを与えるはずです。