QSystemTrayIcon 类提供用于系统托盘的应用程序图标。 更多...
头: | #include <QSystemTrayIcon> |
CMake: |
find_package(Qt6 COMPONENTS Widgets REQUIRED)
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 (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 .
activated () 信号被发射,当用户激活图标时。
仅在 X11,当请求工具提示时,QSystemTrayIcon 接收 QHelpEvent 类型 QEvent::ToolTip 。此外,QSystemTrayIcon 接收滚轮事件类型 QEvent::Wheel 。这些不被支持,在任何其它平台。
另请参阅 QDesktopServices , 桌面集成 ,和 系统托盘图标范例 .
此枚举描述系统托盘被激活的原因。
常量 | 值 | 描述 |
---|---|---|
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 ) |
Constructs a QSystemTrayIcon object with the given icon and parent .
图标最初是不可见的。
另请参阅 visible .
Constructs a QSystemTrayIcon object with the given parent .
图标最初是不可见的。
另请参阅 visible .
[signal]
void
QSystemTrayIcon::
activated
(
QSystemTrayIcon::ActivationReason
reason
)
此信号被发射,当用户激活系统托盘图标时。 reason 指定激活的原因。 QSystemTrayIcon::ActivationReason 枚举了各种原因。
另请参阅 QSystemTrayIcon::ActivationReason .
[slot]
void
QSystemTrayIcon::
hide
()
隐藏系统托盘条目。
[signal]
void
QSystemTrayIcon::
messageClicked
()
此信号被发射当消息显示使用 showMessage () 被用户点击。
注意: We follow Microsoft Windows behavior, so the signal is also emitted when the user clicks on a tray icon with a balloon message displayed.
另请参阅 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 已变成槽。
另请参阅 show () 和 supportsMessages ().
[slot, since 5.9]
void
QSystemTrayIcon::
showMessage
(const
QString
&
title
, const
QString
&
message
, const
QIcon
&
icon
,
int
millisecondsTimeoutHint
= 10000)
This function overloads showMessage().
展示条目的气球消息采用给定 title , message ,和自定义图标 icon 按指定时间 millisecondsTimeoutHint .
该函数在 Qt 5.9 引入。
[虚拟]
QSystemTrayIcon::
~QSystemTrayIcon
()
从系统托盘移除图标并释放所有分配资源。
返回系统托盘条目的当前上下文菜单。
另请参阅 setContextMenu ().
[override virtual protected]
bool
QSystemTrayIcon::
event
(
QEvent
*
e
)
重实现: QObject::event (QEvent *e).
返回系统托盘图标几何体,按屏幕坐标。
另请参阅 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 ().