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 通知區域 ,在那裏長時間運行應用程序可以顯示圖標和短消息。
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 , 桌麵集成 ,和 係統托盤圖標範例 .
此枚舉描述係統托盤被激活的原因。
| 常量 | 值 | 描述 |
|---|---|---|
QSystemTrayIcon::Unknown
|
0
|
未知原因 |
QSystemTrayIcon::Context
|
1
|
用於係統托盤條目的上下文菜單被請求 |
QSystemTrayIcon::DoubleClick
|
2
|
係統托盤條目被雙擊。 |
注意: 在 macOS,雙擊纔會被發射,若未設置上下文菜單,由於菜單在鼠標按下時打開
| 常量 | 值 | 描述 |
|---|---|---|
QSystemTrayIcon::Trigger
|
3
|
係統托盤條目被點擊 |
QSystemTrayIcon::MiddleClick
|
4
|
係統托盤條目被點擊,采用鼠標中鍵 |
另請參閱 activated ().
此枚舉描述展示圖標,當顯示氣球消息時。
| 常量 | 值 | 描述 |
|---|---|---|
QSystemTrayIcon::NoIcon
|
0
|
沒有展示圖標。 |
QSystemTrayIcon::Information
|
1
|
展示信息圖標。 |
QSystemTrayIcon::Warning
|
2
|
展示標準警告圖標。 |
QSystemTrayIcon::Critical
|
3
|
展示嚴重警告圖標。 |
另請參閱 QMessageBox .
此特性保持係統托盤圖標
在 Windows,係統托盤圖標大小為 16x16;在 X11,首選大小為 22x22。將比例縮放圖標到適當大小,如有必要。
訪問函數:
| QIcon | icon () const |
| void | setIcon (const QIcon & icon ) |
此特性保持用於係統托盤條目的工具提示
在某些係統,工具提示的長度是有限的。會截取工具提示,若有必要。
訪問函數:
| QString | toolTip () const |
| void | setToolTip (const QString & tip ) |
此特性保持係統托盤條目是否可見
將此特性設為 true 或調用 show () 使係統托盤圖標可見;將此特性設為 false 或調用 hide () 隱藏它。
訪問函數:
| bool | isVisible () const |
| void | setVisible (bool visible ) |
構造 QSystemTrayIcon 對象采用給定 icon and parent .
圖標最初是不可見的。
另請參閱 visible .
構造 QSystemTrayIcon 對象采用給定 parent .
圖標最初是不可見的。
另請參閱 visible .
[signal]
void
QSystemTrayIcon::
activated
(
QSystemTrayIcon::ActivationReason
reason
)
此信號被發射,當用戶激活係統托盤圖標時。 reason 指定激活的原因。 QSystemTrayIcon::ActivationReason 枚舉瞭各種原因。
另請參閱 QSystemTrayIcon::ActivationReason .
[slot]
void
QSystemTrayIcon::
hide
()
隱藏係統托盤條目。
[signal]
void
QSystemTrayIcon::
messageClicked
()
此信號發射,當消息顯示使用 showMessage () 被用戶點擊。
注意: 我們遵循微軟 Windows 行為,所以信號也發射,當用戶點擊氣球消息顯示的托盤圖標時。
另請參閱 activated ().
[slot]
void
QSystemTrayIcon::
show
()
在係統托盤展示圖標。
[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
()
從係統托盤移除圖標並釋放所有分配資源。
返迴係統托盤條目的當前上下文菜單。
另請參閱 setContextMenu ().
[override virtual protected]
bool
QSystemTrayIcon::
event
(
QEvent
*
e
)
重實現: QObject::event (QEvent *e).
返迴係統托盤圖標幾何體,按屏幕坐標。
該函數在 Qt 4.3 引入。
另請參閱 visible .
[static]
bool
QSystemTrayIcon::
isSystemTrayAvailable
()
返迴
true
若係統托盤可用;否則返迴
false
.
係統托盤目前不可用,但稍後變為可用, QSystemTrayIcon 會在係統托盤自動添加條目,若 visible .
設置指定 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 ().