class QDBusServiceWatcher#

QDBusServiceWatcher 类允许用户监视总线服务变化。 更多信息...

Inheritance diagram of PySide6.QtDBus.QDBusServiceWatcher

概述#

属性#

方法#

信号#

#

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

详细描述#

QDBusServiceWatcher对象可用于通知应用程序有关总线上的服务名所有权变更。它具有三种监视模式

  • 仅监视服务注册。

  • 仅监视服务注销。

  • 监视任何类型的服务所有权变更(默认模式)。

除了创建或删除,服务在没有运行注销/注册操作的情况下也可能更改所有者。因此,在这种情况下,serviceRegistered()serviceUnregistered()信号可能不会发出。

此类比使用QDBusConnectionInterface::serviceOwnerChanged()信号更高效,因为它允许接收类感兴趣的信号。

以字符‘*’结束服务名称将匹配指定命名空间内的所有服务名称。

例如,“com.example.backend1*”将匹配

  • com.example.backend1

  • com.example.backend1.foo

  • com.example.backend1.foo.bar

同一域中的子字符串不会被匹配,即“com.example.backend12”。

另请参阅

QDBusConnection

WatchModeFlag#

(继承自enum.Flag) QDBusServiceWatcher支持三种不同的监视模式,这些模式由该标志配置

常量

描述

QDBusServiceWatcher.WatchForRegistration

仅监视服务注册,忽略任何与其他服务所有权变更相关的信号。

QDBusServiceWatcher.WatchForUnregistration

仅监视服务注销,忽略任何与其他服务所有权变更相关的信号。

QDBusServiceWatcher.WatchForOwnerChange

监视任何类型的服务所有权变更。

#

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

属性watchMode: QDBusServiceWatcher.WatchModeFlag 组合#

此属性保存此 QDBusServiceWatcher 对象的当前监视模式。

此属性的默认值是 QDBusServiceWatcher::WatchForOwnershipChange。

访问函数
属性watchedServices: 字符串列表#

此属性保存要监视的服务列表。

#

使用 setServicesWatched() 修改此列表是一个昂贵的操作。如果可能的话,最好通过 addWatchedService()removeWatchedService() 来更改它。

访问函数
__init__([parent=None])#
参数:

parentQObject

创建一个 QDBusServiceWatcher 对象。注意,在设置连接 setConnection() 之前,此对象不会发出任何信号。

parent 参数传递给 QObject 以设置此对象的父级。

__init__(service, connection[, watchMode=QDBusServiceWatcher.WatchModeFlag.WatchForOwnerChange[, parent=None]])
参数:

创建一个 QDBusServiceWatcher 对象并将其附加到 connection 连接上。此外,此函数立即开始监视 watchMode 的变化,并向服务 service 发送。

parent 参数传递给 QObject 以设置此对象的父级。

addWatchedService(newService)#
参数:

newService – str

newService 添加到此对象要监视的服务列表。此函数比 setWatchedServices() 更高效,应在可能的情况下使用以添加服务。

删除现有的 watchedServices 绑定。

connection()#
返回类型:

QDBusConnection

返回此对象附加到的 QDBusConnection

另请参阅

setConnection()

removeWatchedService(service)#
参数:

service – str

返回类型:

bool

从此对象监视的服务列表中删除 service。请注意,D-Bus 通知是异步的,因此仍可能有关于 service 的信号待处理。这些信号将在处理 D-Bus 消息时随时发出。

删除现有的 watchedServices 绑定。

如果任何服务被删除,此函数返回 true

serviceOwnerChanged(service, oldOwner, newOwner)#
参数:
  • service – str

  • oldOwner – str

  • newOwner – str

每当此对象检测到与 serviceName 服务相关的所有者变更时,都会发出此信号。oldOwner 参数包含旧的所有者名称,而 newOwner 是新的所有者。两者都是唯一的连接名称。

注意,每次 serviceName 服务被注册或注销时,也会发出此信号。如果它被注册,则 oldOwner 将包含空字符串,而如果它被注销,则 newOwner 将包含空字符串。

如果只需要查询服务是否已注册或未注册,而不需要收到所有权变更的通知,请考虑使用专门的操作模式。在更具体的模式下使用此类将更加高效。

serviceRegistered(service)#
参数:

service – str

当此对象检测到服务 serviceName 在总线中可用时,将发出此信号。

serviceUnregistered(service)#
参数:

service – str

当此对象检测到服务 serviceName 已从总线中注销且不可用时,将发出此信号。

setConnection(connection)#
参数:

connectionQDBusConnection

将此对象附加到的 D-Bus 连接设置为 connection。所有监视的服务都将转移到此连接。

请注意,QDBusConnection 对象是具有引用计数的:在存在时,QDBusServiceWatcher 将保留对此连接的引用。连接将在引用计数降至零时关闭,因此这将确保在此 QDBusServiceWatcher 对象存在时接收任何通知。

另请参阅

connection()

setWatchMode(mode)#
参数:

模式 - WatchModeFlag 的组合

另请参阅

watchMode()

属性 watchMode 的设置器。

setWatchedServices(services)#
参数:

services - 字符串列表

将正在监听的 D-Bus 服务列表设置为 services

请注意,设置整个列表意味着删除所有先前用于监视服务的规则并添加新的规则。这是一个成本较高的操作,如果可能的话应避免。相反,如果可以,请使用 addWatchedServiceremoveWatchedService 来操作列表中的条目。

删除现有的 watchedServices 绑定。

另请参阅

watchedServices()

属性 watchedServices 的设置器。

watchMode()#
返回类型:

WatchModeFlag 的组合

另请参阅

setWatchMode()

属性 watchMode 的获取器。

watchedServices()#
返回类型:

字符串列表

返回正在被监视的 D-Bus 服务列表。

另请参阅

setWatchedServices()

属性 watchedServices 的获取器。