QSystemTrayIcon类
QSystemTrayIcon类提供了一个在系统托盘中的应用图标。《更多...》
头文件 | #include <QSystemTrayIcon> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) |
qmake | QT += widgets |
继承 | QObject |
公共类型
枚举 | ActivationReason { Unknown, Context, DoubleClick, Trigger, MiddleClick } |
枚举 | MessageIcon { NoIcon, Information, Warning, Critical } |
属性
公共函数
QSystemTrayIcon(QObject *parent = nullptr) | |
QSystemTrayIcon(const QIcon &icon, QObject *parent = nullptr) | |
虚拟 | ~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 | 事件(QEvent *e) override |
详细描述
现代操作系统通常在桌面上提供一个特殊区域,称为系统托盘或通知区域,长时间运行的应用程序可以在其中显示图标和短消息。
QSystemTrayIcon类可以在以下平台上使用
- 所有Windows支持的版本。
- 所有实现D-Bus StatusNotifierItem规范的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起,未安装shell扩展的系统不支持所有QSystemTrayIcon::ActivationReason。
另请参阅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(QObject *parent = nullptr)
使用给定的parent构造一个QSystemTrayIcon对象。
图标最初是无 visible。
另请参阅visible.
QSystemTrayIcon::QSystemTrayIcon(const QIcon &icon, QObject *parent = nullptr)
使用给定的icon和parent构造一个QSystemTrayIcon对象。
图标最初是无 visible。
另请参阅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()
隐藏系统托盘条目。
[static]
bool QSystemTrayIcon::isSystemTrayAvailable()
如果系统托盘可用,则返回 true
;否则返回 false
。
如果系统托盘目前不可用但稍后可用,当 QSystemTrayIcon 可见时,会自动在系统托盘增加一个条目。
[信号]
void QSystemTrayIcon::messageClicked()
当使用 showMessage() 显示的消息被用户点击时,会发出此信号。
注意:我们遵循 Microsoft Windows 行为,因此当用户在显示气球消息的托盘图标上单击时,也会触发此信号。
另请参阅activated()。
void QSystemTrayIcon::setContextMenu(QMenu *menu)
将指定的 menu 设置为系统托盘图标的上下文菜单。
当用户通过单击鼠标按钮请求系统托盘图标的上下文菜单时,菜单将弹出。
注意:系统托盘图标不拥有菜单。您必须确保在适当的时候通过,例如,使用适当的父对象创建菜单来删除它。
另请参阅:contextMenu()。
[槽函数]
void QSystemTrayIcon::show()
在系统托盘显示图标。
[槽函数]
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 中已将其转换为槽。
另请参阅:show() 和 supportsMessages。
[槽函数]
void QSystemTrayIcon::showMessage(const QString &title, const QString &message, const QIcon &icon, int millisecondsTimeoutHint = 10000)
此函数是 showMessage() 的重载。
显示具有给定 title、message 和自定义图标 icon 的气球消息,其持续时间由 millisecondsTimeoutHint 指定。
[静态]
bool QSystemTrayIcon::supportsMessages()
如果系统托盘支持气球消息,则返回 true
;否则返回 false
。
另请参阅 showMessage。
© 2024 Qt公司有限公司。本文件中包含的文档贡献归各自所有者所有。此处提供的文档根据由自由软件基金会发布的GNU自由文档许可协议第1.3版进行许可。Qt及其相应的标志是芬兰以及其他国家和地区Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。