QSystemTrayIcon 類

QSystemTrayIcon 類提供用於係統托盤的應用程序圖標。 更多...

頭: #include <QSystemTrayIcon>
qmake: QT += widgets
Since: Qt 4.2
繼承: QObject

該類在 Qt 4.2 引入。

公共類型

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

特性

公共函數

QSystemTrayIcon (const QIcon & icon , QObject * parent = nullptr)
QSystemTrayIcon (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 ()

靜態公共成員

bool isSystemTrayAvailable ()
bool supportsMessages ()

重實現保護函數

virtual bool event (QEvent * e ) override

詳細描述

現代操作係統通常在桌麵提供特殊區域,稱為 係統托盤 or 通知區域 ,在那裏長時間運行應用程序可以顯示圖標和短消息。

The system tray on Windows XP.

QSystemTrayIcon 類可以用於下列平颱:

要校驗係統托盤是否呈現在用戶桌麵,調用 QSystemTrayIcon::isSystemTrayAvailable () 靜態函數。

要添加係統托盤條目,創建 QSystemTrayIcon 對象,調用 setContextMenu () 為圖標提供上下文菜單,和調用 show () 去使之在係統托盤中可見。狀態通知消息 (氣球消息) 可以被隨時顯示,使用 showMessage ().

係統托盤不可用,當構造係統托盤圖標時,但稍後變為可用,QSystemTrayIcon 會在係統托盤自動添加應用程序條目,若圖標 visible .

The activated () 信號被發射,當用戶激活圖標時。

僅在 X11,當請求工具提示時,QSystemTrayIcon 接收 QHelpEvent 類型 QEvent::ToolTip 。此外,QSystemTrayIcon 接收滾輪事件類型 QEvent::Wheel 。這些不支持,在任何其它平颱。注意:由於 GNOME Shell 是 3.26 版,並非所有 QSystemTrayIcon::ActivationReason 都支持未安裝 Shell 擴展的係統。

另請參閱 QDesktopServices , QDesktopWidget , 桌麵集成 ,和 係統托盤圖標範例 .

成員類型文檔編製

enum QSystemTrayIcon:: ActivationReason

此枚舉描述係統托盤被激活的原因。

常量 描述
QSystemTrayIcon::Unknown 0 未知原因
QSystemTrayIcon::Context 1 用於係統托盤條目的上下文菜單被請求
QSystemTrayIcon::DoubleClick 2 係統托盤條目被雙擊。

注意: 在 macOS,雙擊纔會被發射,若未設置上下文菜單,由於菜單在鼠標按下時打開

常量 描述
QSystemTrayIcon::Trigger 3 係統托盤條目被點擊
QSystemTrayIcon::MiddleClick 4 係統托盤條目被點擊,采用鼠標中鍵

另請參閱 activated ().

enum QSystemTrayIcon:: MessageIcon

此枚舉描述展示圖標,當顯示氣球消息時。

常量 描述
QSystemTrayIcon::NoIcon 0 沒有展示圖標。
QSystemTrayIcon::Information 1 展示信息圖標。
QSystemTrayIcon::Warning 2 展示標準警告圖標。
QSystemTrayIcon::Critical 3 展示嚴重警告圖標。

另請參閱 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 (const QIcon & icon , QObject * parent = nullptr)

構造 QSystemTrayIcon 對象采用給定 icon and parent .

圖標最初是不可見的。

另請參閱 visible .

QSystemTrayIcon:: QSystemTrayIcon ( QObject * parent = nullptr)

構造 QSystemTrayIcon 對象采用給定 parent .

圖標最初是不可見的。

另請參閱 visible .

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

此信號被發射,當用戶激活係統托盤圖標時。 reason 指定激活的原因。 QSystemTrayIcon::ActivationReason 枚舉瞭各種原因。

另請參閱 QSystemTrayIcon::ActivationReason .

[slot] void QSystemTrayIcon:: hide ()

隱藏係統托盤條目。

另請參閱 show () 和 visible .

[signal] void QSystemTrayIcon:: messageClicked ()

此信號發射,當消息顯示使用 showMessage () 被用戶點擊。

注意: 我們遵循微軟 Windows 行為,所以信號也發射,當用戶點擊氣球消息顯示的托盤圖標時。

另請參閱 activated ().

[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 and icon 按指定時間 millisecondsTimeoutHint . title and message 必須是純文本字符串。

消息可以被用戶點擊; messageClicked () 信號會被發射當齣現這時。

注意,消息的顯示從屬係統配置和用戶首選項,且消息可能根本不齣現。因此,不應將它作為提供關鍵信息的唯一手段。

在 Windows, millisecondsTimeoutHint 通常會被係統忽略,當應用程序擁有聚焦時。

在 Qt 5.2 已變成槽。

該函數在 Qt 4.3 引入。

另請參閱 show () 和 supportsMessages ().

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

此函數重載 showMessage()。

展示條目的氣球消息采用給定 title , message ,和自定義圖標 icon 按指定時間 millisecondsTimeoutHint .

該函數在 Qt 5.9 引入。

[虛擬] QSystemTrayIcon:: ~QSystemTrayIcon ()

從係統托盤移除圖標並釋放所有分配資源。

QMenu *QSystemTrayIcon:: contextMenu () const

返迴係統托盤條目的當前上下文菜單。

另請參閱 setContextMenu ().

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

重實現: QObject::event (QEvent *e).

QRect QSystemTrayIcon:: geometry () const

返迴係統托盤圖標幾何體,按屏幕坐標。

該函數在 Qt 4.3 引入。

另請參閱 visible .

[static] bool QSystemTrayIcon:: isSystemTrayAvailable ()

返迴 true 若係統托盤可用;否則返迴 false .

係統托盤目前不可用,但稍後變為可用, QSystemTrayIcon 會在係統托盤自動添加條目,若 visible .

void QSystemTrayIcon:: setContextMenu ( QMenu * menu )

設置指定 menu 成為用於係統托盤圖標的上下文菜單。

菜單會彈齣,當用戶通過點擊鼠標按鈕請求用於係統托盤圖標的上下文菜單時。

On macOS, this is currently converted to a NSMenu, so the aboutToHide() signal is not emitted.

注意: 係統托盤圖標未擁有菜單的所有權。必須確保在適當時刪除它,例如,采用適當父級對象創建菜單。

另請參閱 contextMenu ().

[static] bool QSystemTrayIcon:: supportsMessages ()

返迴 true 若係統托盤支持氣球消息;否則返迴 false .

另請參閱 showMessage ().