このページでは

SystemTrayIcon QML Type

システムトレイのアイコン。詳細...

Import Statement: import Qt.labs.platform
Inherits:

QtObject

プロパティ

信号

方法

  • void hide()
  • void show()
  • void showMessage(string title, string message, MessageIcon icon, int msecs)

詳細説明

SystemTrayIcon 型は、システムトレイにアプリケーションのアイコンを表示します。

多くのデスクトッププラットフォームには、アプリケーションがアイコンや通知メッセージを表示できる専用のシステムトレイまたは通知領域が用意されています。

システムトレイのアイコン

次の例は、システムトレイアイコンの作成方法と、activated() シグナルの利用方法を示しています。

SystemTrayIcon {
    visible: true
    icon.source: "qrc:/images/tray-icon.png"

    onActivated: {
        window.show()
        window.raise()
        window.requestActivate()
    }
}

トレイメニュー

SystemTrayIcon には、アイコンがアクティブになったときに開くメニューを設定できます。

メニュー付きのシステムトレイアイコン

次の例は、システムトレイアイコンにMenu を割り当てる方法を示しています:

SystemTrayIcon {
    visible: true
    icon.source: "qrc:/images/tray-icon.png"

    menu: Menu {
        MenuItem {
            text: qsTr("Quit")
            onTriggered: Qt.quit()
        }
    }
}

通知メッセージ

SystemTrayIconは通知メッセージを表示できます。

システムトレイのアイコンによるメッセージのポップアップ表示

以下の例では、showMessage() を使用して通知メッセージを表示する方法と、messageClicked() シグナルを活用する方法を示します:

SystemTrayIcon {
    visible: true
    icon.source: "qrc:/images/tray-icon.png"

    onMessageClicked: console.log("Message clicked")
    Component.onCompleted: showMessage("Message title", "Something important came up. Click this to know more.")
}

利用可能プラットフォーム

ネイティブのシステムトレイアイコンは、現在以下のプラットフォームでavailable として利用可能です:

  • freedesktop.orgのXEmbedシステムトレイ仕様を実装している、X11向けのすべてのウィンドウマネージャおよび独立したトレイ実装。
  • freedesktop.orgのD-Bus StatusNotifierItem仕様を実装するすべてのデスクトップ環境(KDEやUnityの最新バージョンを含む)。
  • macOSのすべてのサポート対象バージョン。OS X 10.8(Mountain Lion)以前のバージョンでshowMessage()がメッセージを表示するには、Growl通知システムがインストールされている必要があることに注意してください。

Qt Labs Platform モジュールは、ネイティブの実装が利用できないプラットフォームにおいて、フォールバックとしてQt Widgets を使用します。したがって、Qt Labs Platform モジュールの型を使用するアプリケーションは、QtWidgets にリンクし、QGuiApplication の代わりにQApplication を使用する必要があります。

QtWidgets ライブラリに対してリンクするには、qmakeプロジェクトファイルに以下を追加してください:

QT += widgets

main() 内でQApplication のインスタンスを作成してください:

#include <QApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QQmlApplicationEngine engine;
    engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
    return app.exec();
}

注: Qt.labs モジュール内の型は、将来のバージョンでも互換性が維持されるとは限りません。

「Menu」も参照してください 。

プロパティのドキュメント

available : bool [read-only]

このプロパティは、システムトレイが利用可能かどうかに関係なく有効です。

geometry : rect [since Qt.labs.platform 1.1 (Qt 5.12)]

このプロパティには、システムトレイアイコンのジオメトリが格納されます。

このプロパティは、Qt Labs Platform 1.1 (Qt 5.12) で導入されました。

icon group

icon.mask : bool [since Qt.labs.platform 1.1 (Qt 5.12)]

icon.name : string [since Qt.labs.platform 1.1 (Qt 5.12)]

icon.source : url [since Qt.labs.platform 1.1 (Qt 5.12)]

このプロパティは、システムトレイのアイコンを保持します。

SystemTrayIcon {
    icon.mask: true
    icon.source: "qrc:/images/tray-icon.png"
}

これらのプロパティは、Qt Labs Platform 1.1 (Qt 5.12) で導入されました。

このプロパティは、システムトレイアイコンのメニューを保持します。

supportsMessages : bool [read-only]

このプロパティは、システムトレイのアイコンが通知メッセージに対応しているかどうかを示します。

showMessage()も参照してください 。

tooltip : string

このプロパティには、システムトレイアイコンのツールチップが格納されます。

visible : bool

このプロパティは、システムトレイのアイコンが表示されているかどうかを指定します。

デフォルト値は `false` です。

Signal ドキュメント

activated(ActivationReason reason)

このシグナルは、ユーザーがシステムトレイのアイコンを起動したときに発せられます。reason 引数は、システムトレイのアイコンがどのように起動されたかを指定します。

利用可能な理由:

定数説明
SystemTrayIcon.Unknown不明な理由
SystemTrayIcon.Contextシステムトレイアイコンのコンテキストメニューが要求された
SystemTrayIcon.DoubleClickシステムトレイアイコンがダブルクリックされた
SystemTrayIcon.Triggerシステムトレイアイコンがクリックされた
SystemTrayIcon.MiddleClickシステムトレイのアイコンがマウスの中ボタンでクリックされた

注: 対応するハンドラは onActivated です。

messageClicked()

このシグナルは、ユーザーが通知メッセージをクリックしたときに発火します。

注: 対応するハンドラは `onMessageClicked` です。

showMessage()も参照してください 。

メソッドのドキュメント

void hide()

システムトレイのアイコンを非表示にします。

void show()

システムトレイのアイコンを表示します。

void showMessage(string title, string message, MessageIcon icon, int msecs)

msecs で指定された時間に、title 、message 、およびicon を含むシステムトレイメッセージを表示します。

注:システム トレイのメッセージは、システムの設定やユーザーの設定に依存するため、まったく表示されない場合があります。したがって、重要な情報を提供する唯一の手段としてこれだけに頼るべきではありません。

supportsMessages およびmessageClicked()も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.