- class QDBusServiceWatcher#
QDBusServiceWatcher
类允许用户监视总线服务变化。 更多信息...概述#
属性#
watchMode
- 该 QDBusServiceWatcher 对象当前的监视模式watchedServices
- 被监视的服务列表
方法#
def
__init__()
def
connection()
定义
watchMode()
信号#
注#
本文档可能包含从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”。
另请参阅
- 类 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()
来更改它。创建一个
QDBusServiceWatcher
对象。注意,在设置连接setConnection()
之前,此对象不会发出任何信号。parent
参数传递给 QObject 以设置此对象的父级。- __init__(service, connection[, watchMode=QDBusServiceWatcher.WatchModeFlag.WatchForOwnerChange[, parent=None]])
- 参数:
service – str
connection –
QDBusConnection
watchMode – 组合
WatchModeFlag
parent –
QObject
创建一个
QDBusServiceWatcher
对象并将其附加到connection
连接上。此外,此函数立即开始监视watchMode
的变化,并向服务service
发送。parent
参数传递给 QObject 以设置此对象的父级。- addWatchedService(newService)#
- 参数:
newService – str
将
newService
添加到此对象要监视的服务列表。此函数比setWatchedServices()
更高效,应在可能的情况下使用以添加服务。删除现有的
watchedServices
绑定。- connection()#
- 返回类型:
返回此对象附加到的
QDBusConnection
。另请参阅
- 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)#
- 参数:
connection –
QDBusConnection
将此对象附加到的 D-Bus 连接设置为
connection
。所有监视的服务都将转移到此连接。请注意,
QDBusConnection
对象是具有引用计数的:在存在时,QDBusServiceWatcher
将保留对此连接的引用。连接将在引用计数降至零时关闭,因此这将确保在此QDBusServiceWatcher
对象存在时接收任何通知。另请参阅
- setWatchMode(mode)#
- 参数:
模式 -
WatchModeFlag
的组合
另请参阅
属性
watchMode
的设置器。- setWatchedServices(services)#
- 参数:
services - 字符串列表
将正在监听的 D-Bus 服务列表设置为
services
。请注意,设置整个列表意味着删除所有先前用于监视服务的规则并添加新的规则。这是一个成本较高的操作,如果可能的话应避免。相反,如果可以,请使用
addWatchedService
和removeWatchedService
来操作列表中的条目。删除现有的
watchedServices
绑定。另请参阅
属性
watchedServices
的设置器。- watchMode()#
- 返回类型:
WatchModeFlag
的组合
另请参阅
属性
watchMode
的获取器。- watchedServices()#
- 返回类型:
字符串列表
返回正在被监视的 D-Bus 服务列表。
另请参阅
属性
watchedServices
的获取器。