PySide6.QtDBus.QDBusServiceWatcher¶
- class QDBusServiceWatcher¶
QDBusServiceWatcher类允许用户监视总线服务的变化。更多…概要¶
属性¶
watchModeᅟ- 当前此 QDBusServiceWatcher 对象的监视模式watchedServicesᅟ- 被监视的服务列表
方法¶
def
__init__()def
connection()def
setConnection()def
setWatchMode()def
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”。
另请参阅
- class WatchModeFlag¶
(继承自
enum.Flag)QDBusServiceWatcher支持三种不同的监视模式,这些模式通过此标志进行配置:常量
描述
QDBusServiceWatcher.WatchForRegistration
仅监视服务注册,忽略与服务所有权变更相关的任何信号。
QDBusServiceWatcher.WatchForUnregistration
仅监视服务注销,忽略与服务所有权变更相关的任何信号。
QDBusServiceWatcher.WatchForOwnerChange
监视任何类型的服务所有权变更。
注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property watchModeᅟ: Combination of QDBusServiceWatcher.WatchModeFlag¶
此属性保存此
QDBusServiceWatcher对象的当前监视模式。此属性的默认值为 QDBusServiceWatcher::WatchForOwnershipChange。
- Access functions:
- property watchedServicesᅟ: list of strings¶
此属性保存被监视的服务列表。
注意
使用setServicesWatched()修改此列表是一项昂贵的操作。如果可能,建议通过
addWatchedService()和removeWatchedService()来更改它。- Access functions:
创建一个
QDBusServiceWatcher对象。请注意,在您使用setConnection()设置连接之前,此对象不会发出任何信号。parent参数传递给 QObject 以设置此对象的父对象。- __init__(service, connection[, watchMode=QDBusServiceWatcher.WatchModeFlag.WatchForOwnerChange[, parent=None]])
- Parameters:
service – str
connection –
QDBusConnectionwatchMode –
WatchModeFlag的组合parent –
QObject
创建一个
QDBusServiceWatcher对象并将其附加到connection连接。此外,此函数立即开始监视watchMode对服务service的更改。parent参数传递给 QObject 以设置此对象的父对象。- addWatchedService(newService)¶
- Parameters:
newService – str
将
newService添加到此对象要监视的服务列表中。此函数比setWatchedServices()更高效,应尽可能使用它来添加服务。移除任何现有的
watchedServices绑定。- connection()¶
- Return type:
返回此对象所附加的
QDBusConnection。另请参阅
- removeWatchedService(service)¶
- Parameters:
服务 – str
- Return type:
布尔
从该对象监视的服务列表中移除
service。请注意,D-Bus通知是异步的,因此可能仍有关于service的信号待传递。这些信号仍将在处理D-Bus消息时发出。移除任何现有的
watchedServices绑定。如果任何服务被移除,此函数返回
true。- serviceOwnerChanged(service, oldOwner, newOwner)¶
- Parameters:
service – str
oldOwner – str
newOwner – str
每当此对象检测到与
serviceName服务相关的服务所有权变更时,就会发出此信号。oldOwner参数包含旧所有者名称,newOwner是新所有者。oldOwner和newOwner都是唯一的连接名称。请注意,每当
serviceName服务被注册或注销时,也会发出此信号。如果它被注册,oldOwner将包含一个空字符串,而如果它被注销,newOwner将包含一个空字符串。如果您只需要确定服务是否已注册或未注册,而不需要通知所有权变更,请考虑使用这些操作的特定模式。如果您使用更具体的模式,这个类会更高效。
- serviceRegistered(service)¶
- Parameters:
服务 – str
每当此对象检测到服务
serviceName在总线上可用时,就会发出此信号。- serviceUnregistered(service)¶
- Parameters:
服务 – str
每当此对象检测到服务
serviceName从总线上注销且不再可用时,就会发出此信号。- setConnection(connection)¶
- Parameters:
连接 –
QDBusConnection
设置此对象所连接的D-Bus连接为
connection。所有监视的服务都将转移到这个连接。请注意,
QDBusConnection对象是引用计数的:QDBusServiceWatcher在存在时会保持对该连接的引用。直到引用计数降至零时,连接才会关闭,因此这将确保在此QDBusServiceWatcher对象存在期间接收到任何通知。另请参阅
- setWatchMode(mode)¶
- Parameters:
mode –
WatchModeFlag的组合
另请参阅
属性
watchModeᅟ的设置器。- setWatchedServices(services)¶
- Parameters:
services – 字符串列表
设置要监视的D-Bus服务列表为
services。请注意,设置整个列表意味着删除所有以前的服务监视规则并添加新的规则。这是一个昂贵的操作,应尽可能避免。相反,如果可以的话,请使用
addWatchedService()和removeWatchedService()来操作列表中的条目。移除任何现有的
watchedServices绑定。另请参阅
属性
watchedServicesᅟ的设置器。- watchMode()¶
- Return type:
另请参阅
属性
watchModeᅟ的获取器。- watchedServices()¶
- Return type:
字符串列表
返回正在监视的D-Bus服务列表。
另请参阅
属性
watchedServicesᅟ的获取器。