1

Qt 4.8 では、フレームを「最上位に」設定したいと考えています。醜いちらつきを伴うウィンドウを再作成する必要があるため、Qt の方法は完璧ではありません。

Win32 では、ネイティブ メソッドが存在します。

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

しかし、OS-X で使用する必要があるコードは何ですか?

4

1 に答える 1

8

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に似た通知システムを作成しました。また、フルスクリーンアプリケーションを実行しているときにフォーカスを奪わないように最適化されています。これは、ゲームをプレイしているときやビデオを見ているときに最適です。それはあなたにスタートを与えるはずです。

于 2012-09-20T18:11:32.497 に答える