このページでは

QSystemTrayIcon Class

QSystemTrayIcon クラスは、システムトレイにアプリケーションのアイコンを表示します。詳細...

ヘッダー: #include <QSystemTrayIcon>
CMake: find_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
継承元: QObject

パブリック型

enum ActivationReason { Unknown, Context, DoubleClick, Trigger, MiddleClick }
enum MessageIcon { NoIcon, Information, Warning, Critical }

プロパティ

パブリック関数

QSystemTrayIcon(QObject *parent = nullptr)
QSystemTrayIcon(const QIcon &icon, QObject *parent = nullptr)
virtual ~QSystemTrayIcon()
QMenu *contextMenu() const
QRect geometry() const
QIcon icon() const
bool isVisible() const
void setContextMenu(QMenu *menu)
void setIcon(const QIcon &icon)
void setToolTip(const QString &tip)
QString toolTip() const

パブリックスロット

void hide()
void setVisible(bool visible)
void show()
void showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000)
void showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000)

シグナル

void activated(QSystemTrayIcon::ActivationReason reason)
void messageClicked()

静的パブリックメンバー

再実装された保護関数

virtual bool event(QEvent *e) override

詳細な説明

最近のオペレーティングシステムでは通常、デスクトップ上に「システムトレイ」または「通知領域」と呼ばれる特別な領域が用意されており、長時間実行されるアプリケーションはそこにアイコンや短いメッセージを表示することができます。

Windows 10のシステムトレイ。

QSystemTrayIcon クラスは、以下のプラットフォームで使用できます:

  • サポートされているすべてのバージョンの Windows。
  • D-BusStatusNotifierItem 仕様を実装しているすべての Linux デスクトップ環境(KDE、Gnome、Xfce、LXQt、DDE など)。
  • freedesktop.org のXEmbed システムトレイ仕様を実装している、X11 向けのすべてのウィンドウマネージャおよび独立したトレイ実装。
  • macOSのすべてのサポート対象バージョン。

ユーザーのデスクトップにシステムトレイが存在するかどうかを確認するには、QSystemTrayIcon::isSystemTrayAvailable() 静的関数を呼び出します。

システムトレイのエントリを追加するには、QSystemTrayIconオブジェクトを作成し、setContextMenu()を呼び出してアイコンのコンテキストメニューを設定し、show()を呼び出してシステムトレイに表示させます。ステータス通知メッセージ(「バルーンメッセージ」)は、showMessage()を使用していつでも表示できます。

システムトレイアイコンの構築時にシステムトレイが利用できない場合でも、後で利用可能になった際に、アイコンがvisible 状態であれば、QSystemTrayIconは自動的にシステムトレイにそのアプリケーションのエントリを追加します。

activated() シグナルは、ユーザーがアイコンをアクティブにしたときに発せられます。

X11 でのみ、ツールチップが要求された場合、QSystemTrayIcon は型がQEvent::ToolTip のQHelpEvent を受け取ります。さらに、QSystemTrayIcon は型がQEvent::Wheel のホイールイベントを受け取ります。これらは他のプラットフォームではサポートされていません。注: GNOME Shell バージョン 3.26 以降、シェル拡張機能がインストールされていない場合、すべてのQSystemTrayIcon::ActivationReason がシステムによってサポートされるわけではありません。

関連項目: QDesktopServices 、デスクトップ統合、およびシステムトレイアイコンの例。

メンバ型のドキュメント

enum QSystemTrayIcon::ActivationReason

この列挙型は、システムトレイがアクティブになった理由を表します。

定数値説明
QSystemTrayIcon::Unknown0不明な理由
QSystemTrayIcon::Context1システムトレイのエントリに対するコンテキストメニューが要求された
QSystemTrayIcon::DoubleClick2システムトレイのエントリがダブルクリックされました。

注: macOSでは 、マウスをクリックするとコンテキストメニューが開くため、コンテキストメニューが設定されていない場合にのみダブルクリックが検出されます

QSystemTrayIcon::Trigger3システムトレイのエントリがクリックされました
QSystemTrayIcon::MiddleClick4システムトレイのエントリがマウスの中ボタンでクリックされました

関連項目: activated()。

enum QSystemTrayIcon::MessageIcon

この列挙型は、バルーンメッセージが表示された際に表示されるアイコンを表します。

定数値説明
QSystemTrayIcon::NoIcon0アイコンは表示されません。
QSystemTrayIcon::Information1情報アイコンが表示されます。
QSystemTrayIcon::Warning2標準の警告アイコンが表示されます。
QSystemTrayIcon::Critical3重大な警告アイコンが表示されます。

関連項目: QMessageBox 。

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

icon : QIcon

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

Windows では、システムトレイアイコンのサイズは 16x16 です。X11 では、推奨サイズは 22x22 です。アイコンは必要に応じて適切なサイズに拡大・縮小されます。

アクセス関数:

QIcon icon() const
void setIcon(const QIcon &icon)

toolTip : QString

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

一部のシステムでは、ツールチップの長さに制限があります。必要に応じて、ツールチップは切り詰められます。

アクセス関数:

QString toolTip() const
void setToolTip(const QString &tip)

visible : bool

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

このプロパティを true に設定するか、show() を呼び出すと、システムトレイのアイコンが表示されます。このプロパティを false に設定するか、hide() を呼び出すと、アイコンが非表示になります。

アクセス関数:

bool isVisible() const
void setVisible(bool visible)

メンバ関数のドキュメント

QSystemTrayIcon::QSystemTrayIcon(QObject *parent = nullptr)

指定されたparent を使用して、QSystemTrayIconオブジェクトを生成します。

アイコンは初期状態では非表示です。

visibleも参照してください 。

QSystemTrayIcon::QSystemTrayIcon(const QIcon &icon, QObject *parent = nullptr)

指定されたicon およびparent を使用して、QSystemTrayIconオブジェクトを生成します。

アイコンは初期状態では非表示です。

visibleも参照してください 。

[virtual noexcept] QSystemTrayIcon::~QSystemTrayIcon()

システムトレイからアイコンを削除し、割り当てられていたリソースをすべて解放します。

[signal] void QSystemTrayIcon::activated(QSystemTrayIcon::ActivationReason reason)

このシグナルは、ユーザーがシステムトレイのアイコンをアクティブにしたときに発生します。reason は、アクティブ化の理由を指定します。QSystemTrayIcon::ActivationReason には、さまざまな理由が列挙されています。

「QSystemTrayIcon::ActivationReason」も参照してください 。

QMenu *QSystemTrayIcon::contextMenu() const

システムトレイのエントリに対する現在のコンテキストメニューを返します。

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

[override virtual protected] bool QSystemTrayIcon::event(QEvent *e)

QObject::event(QEvent *e) を再実装します。

QRect QSystemTrayIcon::geometry() const

システムトレイアイコンのジオメトリを画面座標で返します。

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

[slot] void QSystemTrayIcon::hide()

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

show() およびvisibleも参照してください 。

[static] bool QSystemTrayIcon::isSystemTrayAvailable()

システムトレイが利用可能な場合は `true ` を返し、そうでない場合は `false` を返します。

システムトレイが現在利用できない状態であっても、後で利用可能になった場合、QSystemTrayIcon は、visible である場合に自動的にシステムトレイにエントリを追加します。

[signal] void QSystemTrayIcon::messageClicked()

このシグナルは、showMessage() を使用して表示されたメッセージがユーザーによってクリックされたときに発生します。

注: Microsoft Windowsの動作に準拠しているため 、バルーンメッセージが表示されているトレイアイコンをユーザーがクリックした場合にも、このシグナルが発生します。

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

void QSystemTrayIcon::setContextMenu(QMenu *menu)

指定されたmenu を、システムトレイアイコンのコンテキストメニューとして設定します。

ユーザーがマウスボタンをクリックしてシステムトレイアイコンのコンテキストメニューを呼び出すと、このメニューが表示されます。

注:システムトレイアイコンは 、このメニューの所有権を取得しません。適切な親オブジェクトを使用してメニューを作成するなどして、適切なタイミングでメニューが削除されるようにする必要があります。

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

[slot] void QSystemTrayIcon::show()

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

hide() およびvisibleも参照してください 。

[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information, int millisecondsTimeoutHint = 10000)

指定された `title`、`message `、および `icon ` を持つエントリについて、`millisecondsTimeoutHint` で指定された時刻にバルーンメッセージを表示します。`title ` および `message ` はプレーンテキストの文字列でなければなりません。

メッセージはユーザーがクリック可能です。クリックされると、messageClicked() シグナルが発信されます。

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

Windows では、アプリケーションにフォーカスがある場合、millisecondsTimeoutHint は通常、システムによって無視されます。

Qt 5.2 ではスロットに変更されました。

注:この スロットは オーバーロードされています。このスロットに接続するには:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        systemTrayIcon, qOverload(&QSystemTrayIcon::showMessage));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        systemTrayIcon, [receiver = systemTrayIcon](const QString &title, const QString &message, QSystemTrayIcon::MessageIcon icon, int millisecondsTimeoutHint) { receiver->showMessage(title, message, icon, millisecondsTimeoutHint); });
その他の例や手法については、「オーバーロードされたスロットへの接続」を参照してください。

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

[slot] void QSystemTrayIcon::showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000)

指定されたtitle 、message 、およびカスタムアイコンicon を持つエントリについて、millisecondsTimeoutHint で指定された時間にバルーンメッセージを表示します。

注:この スロットは オーバーロードされています。このスロットに接続するには:

// Connect using qOverload:
connect(sender, &SenderClass::signal,
        systemTrayIcon, qOverload(&QSystemTrayIcon::showMessage));

// Or using a lambda as wrapper:
connect(sender, &SenderClass::signal,
        systemTrayIcon, [receiver = systemTrayIcon](const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint) { receiver->showMessage(title, message, icon, millisecondsTimeoutHint); });
その他の例や手法については、「オーバーロードされたスロットへの接続」を参照してください。

[static] bool QSystemTrayIcon::supportsMessages()

システムトレイがバルーンメッセージに対応している場合は `true ` を返し、そうでない場合は `false` を返します。

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

© 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.