QSystemTrayIcon 类

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 通知区域 ,在那里长时间运行应用程序可以显示图标和短消息。

The system tray on Windows XP.

QSystemTrayIcon 类可以用于下列平台:

要校验系统托盘是否呈现在用户桌面,调用 QSystemTrayIcon::isSystemTrayAvailable () 静态函数。

要添加系统托盘条目,创建 QSystemTrayIcon 对象,调用 setContextMenu () 为图标提供上下文菜单,和调用 show () 去使之在系统托盘中可见。状态通知消息 (气球消息) 可以被随时显示,使用 showMessage ().

系统托盘不可用,当构造系统托盘图标时,但稍后变为可用,QSystemTrayIcon 会在系统托盘自动添加应用程序条目,若图标 visible .

activated () 信号被发射,当用户激活图标时。

仅在 X11,当请求工具提示时,QSystemTrayIcon 接收 QHelpEvent 类型 QEvent::ToolTip 。此外,QSystemTrayIcon 接收滚轮事件类型 QEvent::Wheel 。这些不被支持,在任何其它平台。

另请参阅 QDesktopServices , 桌面集成 ,和 系统托盘图标范例 .

成员类型文档编制

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)

Constructs a QSystemTrayIcon object with the given icon and parent .

图标最初是不可见的。

另请参阅 visible .

QSystemTrayIcon:: QSystemTrayIcon ( QObject * parent = nullptr)

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 ()

隐藏系统托盘条目。

另请参阅 show () 和 visible .

[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 ()

在系统托盘展示图标。

另请参阅 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 已变成槽。

另请参阅 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 ()

从系统托盘移除图标并释放所有分配资源。

QMenu *QSystemTrayIcon:: contextMenu () const

返回系统托盘条目的当前上下文菜单。

另请参阅 setContextMenu ().

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

重实现: QObject::event (QEvent *e).

QRect QSystemTrayIcon:: geometry () const

返回系统托盘图标几何体,按屏幕坐标。

另请参阅 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 ().