PySide6.QtWidgets.QSystemTrayIcon

class QSystemTrayIcon

QSystemTrayIcon 类为系统托盘中的应用程序提供了一个图标。更多

PySide6.QtWidgets.QSystemTrayIcon 的继承图

概要

属性

方法

插槽

信号

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

现代操作系统通常在桌面上提供一个特殊区域,称为系统托盘通知区域,长时间运行的应用程序可以在其中显示图标和简短消息。

../../_images/system-tray.webp

QSystemTrayIcon 类可以在以下平台上使用:

要检查用户的桌面上是否存在系统托盘,请调用isSystemTrayAvailable()静态函数。

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

如果在构建系统托盘图标时系统托盘不可用,但后来变得可用,如果图标是visibleQSystemTrayIcon将自动在系统托盘中为应用程序添加一个条目。

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

仅在X11上,当请求工具提示时,QSystemTrayIcon会接收到类型为QEvent::ToolTip的QHelpEvent。此外,QSystemTrayIcon还会接收到类型为QEvent::Wheel的滚轮事件。这些功能在其他平台上不受支持。注意:自GNOME Shell版本3.26起,如果没有安装shell扩展,系统不支持所有的ActivationReason

另请参阅

系统托盘图标示例

class ActivationReason

此枚举描述了系统托盘被激活的原因。

常量

描述

QSystemTrayIcon.Unknown

未知原因

QSystemTrayIcon.Context

系统托盘条目的上下文菜单被请求

QSystemTrayIcon.DoubleClick

系统托盘条目被双击。

注意

在macOS上,如果没有设置上下文菜单,双击才会被触发,因为菜单会在鼠标按下时打开

常量

描述

QSystemTrayIcon.Trigger

系统托盘条目被点击

QSystemTrayIcon.MiddleClick

系统托盘条目被鼠标中键点击

另请参阅

activated()

class MessageIcon

此枚举描述了显示气球消息时显示的图标。

常量

描述

QSystemTrayIcon.NoIcon

不显示图标。

QSystemTrayIcon.Information

显示一个信息图标。

QSystemTrayIcon.Warning

显示一个标准的警告图标。

QSystemTrayIcon.Critical

显示一个严重警告图标。

另请参阅

QMessageBox

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property iconᅟ: QIcon

此属性保存系统托盘图标。

在Windows上,系统托盘图标大小为16x16;在X11上,首选大小为22x22。图标将根据需要缩放到适当的大小。

Access functions:
property toolTipᅟ: str

此属性保存系统托盘条目的工具提示。

在某些系统中,工具提示的长度是有限的。如有必要,工具提示将被截断。

Access functions:
property visibleᅟ: bool

此属性表示系统托盘条目是否可见。

将此属性设置为 true 或调用 show() 使系统托盘图标可见;将此属性设置为 false 或调用 hide() 则隐藏它。

Access functions:
__init__([parent=None])
Parameters:

父对象QObject

使用给定的parent构造一个QSystemTrayIcon对象。

图标最初是不可见的。

另请参阅

visible

__init__(icon[, parent=None])
Parameters:

使用给定的 iconparent 构造一个 QSystemTrayIcon 对象。

图标最初是不可见的。

另请参阅

visible

activated(reason)
Parameters:

原因ActivationReason

当用户激活系统托盘图标时,会发出此信号。reason 指定激活的原因。ActivationReason 枚举了各种原因。

另请参阅

ActivationReason

contextMenu()
Return type:

QMenu

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

另请参阅

setContextMenu()

geometry()
Return type:

QRect

返回系统托盘图标在屏幕坐标中的几何形状。

另请参阅

visible

hide()

隐藏系统托盘条目。

另请参阅

show() 可见

icon()
Return type:

QIcon

另请参阅

setIcon()

属性 iconᅟ 的获取器。

static isSystemTrayAvailable()
Return type:

布尔

如果系统托盘可用,则返回true;否则返回false

如果系统托盘当前不可用但稍后变为可用,QSystemTrayIcon 将自动在系统托盘中添加一个条目,如果它是 visible

isVisible()
Return type:

布尔

属性 visibleᅟ 的获取器。

messageClicked()

当用户点击使用showMessage()显示的消息时,会发出此信号。

注意

我们遵循Microsoft Windows的行为,因此当用户点击显示气球消息的托盘图标时,也会发出信号。

另请参阅

activated()

setContextMenu(menu)
Parameters:

菜单QMenu

将指定的menu设置为系统托盘图标的上下文菜单。

当用户通过点击鼠标按钮请求系统托盘图标的上下文菜单时,菜单将弹出。

注意

系统托盘图标不拥有菜单的所有权。您必须确保在适当的时间删除它,例如,通过使用合适的父对象创建菜单。

另请参阅

contextMenu()

setIcon(icon)
Parameters:

图标QIcon

另请参阅

icon()

属性 iconᅟ 的设置器。

setToolTip(tip)
Parameters:

提示 – str

另请参阅

toolTip()

属性 toolTipᅟ 的设置器。

setVisible(visible)
Parameters:

visible – 布尔值

另请参阅

isVisible()

属性 visibleᅟ 的设置器。

show()

在系统托盘中显示图标。

另请参阅

hide() visible

showMessage(title, msg[, icon=QSystemTrayIcon.Information[, msecs=10000]])
Parameters:
  • 标题 – str

  • msg – str

  • 图标MessageIcon

  • msecs – 整数

显示一个带有给定titlemessageicon的气球消息,持续时间为millisecondsTimeoutHint中指定的时间。titlemessage必须是纯文本字符串。

用户可以点击消息;当这种情况发生时,将发出messageClicked()信号。

请注意,消息的显示取决于系统配置和用户偏好,消息可能根本不会出现。因此,不应将其作为提供关键信息的唯一手段。

在Windows上,当应用程序具有焦点时,系统通常会忽略millisecondsTimeoutHint

在Qt 5.2中已转换为一个槽。

另请参阅

show() supportsMessages()

showMessage(title, msg, icon[, msecs=10000])
Parameters:
  • 标题 – str

  • msg – str

  • 图标QIcon

  • msecs – 整数

此函数重载了 showMessage()

显示一个带有给定titlemessage和自定义图标icon的气球消息,持续时间为millisecondsTimeoutHint中指定的时间。

static supportsMessages()
Return type:

布尔

如果系统托盘支持气球消息,则返回 true;否则返回 false

另请参阅

showMessage()

toolTip()
Return type:

字符串

另请参阅

setToolTip()

属性 toolTipᅟ 的获取器。