- class QDBusConnectionInterface#
QDBusConnectionInterface
类提供了对 D-Bus 总线守护进程服务的访问。 更多...概述#
方法#
def
serviceOwner()
定义
servicePid()
定义
serviceUid()
信号#
注意
此文档可能包含自动从C++转换为Python的片段。我们始终欢迎对片段翻译的贡献。如果您在翻译中发现问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单来告知我们。
详细描述#
D-Bus总线服务器守护进程提供了一个特殊的接口
org.freedesktop.DBus
,允许客户端访问总线的某些属性,例如当前连接的客户端列表。《a class="reference internal" href="#PySide6.QtDBus.QDBusConnectionInterface" title="PySide6.QtDBus.QDBusConnectionInterface">QDBusConnectionInterface
类提供了对这个接口的访问。此类的最常见用途是使用
registerService()
和unregisterService()
函数在总线上注册和注销服务名称,使用isServiceRegistered()
,registeredServiceNames()
和serviceOwner()
函数查询现有名称,并通过serviceRegistered()
,serviceUnregistered()
和 serviceOwnerChanged() 信号接收通知,表示客户端已注册或注销。- class ServiceQueueOptions#
确定服务注册在服务名称已注册的情况下应如何行为的标志。
常量
描述
QDBusConnectionInterface.DontQueueService
如果应用程序请求一个已由其他所有者拥有的名称,则不会进行排队。调用 registeredService() 将直接失败。这是默认行为。
QDBusConnectionInterface.QueueService
尝试注册请求的服务,但如果另一个应用程序已注册此服务则不尝试替换。相反,将此应用程序放入队列中,直到其他应用程序放弃。当发生这种情况时,将发出
serviceRegistered()
信号。QDBusConnectionInterface.ReplaceExistingService
如果另一个应用程序已注册该服务名称,则尝试替换它。
- class ServiceReplacementOptions#
确定 D-Bus 服务器是否应允许另一个应用程序使用
ReplaceExistingService
选项替换应用程序已注册的名称。可能的值有
常量
描述
QDBusConnectionInterface.DontAllowReplacement
不允许其他应用程序替换。必须显式地使用
unregisterService()
注销服务,以便另一个应用程序获得它。这是默认值。QDBusConnectionInterface.AllowReplacement
允许其他应用程序通过使用
ReplaceExistingService
选项替换我们并registerService()
,无需干预。如果发生这种情况,将发出serviceUnregistered()
信号。另请参阅
- class RegisterServiceReply#
从
registerService()
返回的可能值常量
描述
QDBusConnectionInterface.ServiceNotRegistered
调用失败且未注册服务名称。
QDBusConnectionInterface.ServiceRegistered
调用者是服务名称的所有者。
QDBusConnectionInterface.ServiceQueued
调用者指定了
QueueService
标志,并且服务已经被注册,所以我们正在排队。当服务由该应用程序获取时,将发出
serviceRegistered()
信号。
- NameAcquired(arg__1)#
- 参数
arg__1 – str
- NameLost(arg__1)#
- 参数
arg__1 – str
- NameOwnerChanged(arg__1, arg__2, arg__3)#
- 参数
arg__1 – str
arg__2 – str
arg__3 – str
- activatableServiceNames()#
- 返回类型
QDBusReply
- callWithCallbackFailed(error, call)#
- 参数
error –
QDBusError
call –
QDBusMessage
在调用
callWithCallback()
时发生错误时会发出此信号。error
指定错误。call
是无法交付的消息。另请参阅
- isServiceRegistered(arg__1)#
- 参数
arg__1 – str
- 返回类型
QDBusReply
如果服务名称
serviceName
当前已注册,则返回true
。- registerService(arg__1, arg__2, arg__3)#
- 参数
arg__1 – str
arg__2 –
ServiceQueueOptions
arg__3 –
ServiceReplacementOptions
- 返回类型
QDBusReply
请求在总线上注册服务名称
serviceName
。标志qoption
指定如果serviceName
已注册,则D-Bus服务器应该如何行为。标志roption
指定服务器是否应允许其他应用程序替换已注册的名称。如果服务注册成功,将发出
serviceRegistered()
信号。如果在队列中,则当获得名称时发出信号。如果roption
是AllowReplacement
,如果另一个应用程序替换了此应用程序,则发出serviceUnregistered()
信号。另请参阅
- registeredServiceNames()#
- 返回类型
QDBusReply
- serviceOwner(arg__1)#
- 参数
arg__1 – str
- 返回类型
QDBusReply
返回名称
name
的主要所有者的唯一连接名称。如果请求的名称没有所有者,则返回错误org.freedesktop.DBus.Error.NameHasNoOwner
。- serviceOwnerChanged(name, oldOwner, newOwner)#
- 参数
name – str
oldOwner – str
newOwner – str
请使用
QDBusServiceWatcher
代替。该信号在D-Bus服务器检测到总线上的服务所有权变更时发出,包括名称的出现和消失。
该信号表示应用
oldOwner
失去了总线名name
的所有权,被应用newOwner
获取。如果oldOwner
是一个空字符串,表示名称name
刚刚被创建;如果newOwner
为空,表示名称name
当前没有所有者,且不再可用。注意
连接到这个信号将使应用监听并接收总线上的每次服务所有权变更。根据运行的服务数量,这可能导致应用接收过多不必要的信号。为了避免这个问题,请使用
QDBusServiceWatcher
类,它可以监听特定的变动。- servicePid(arg__1)#
- 参数
arg__1 – str
- 返回类型
QDBusReply
返回当前持有总线服务
serviceName
的进程的Unix进程ID (PID)。- serviceRegistered(service)#
- 参数
service – str
D-Bus服务器在总线服务名称(唯一的连接名称或已知服务名称)
service
被该应用获取时发出此信号。在应用使用
registerService()
请求名称之后发生获取。- serviceUid(arg__1)#
- 参数
arg__1 – str
- 返回类型
QDBusReply
返回当前持有总线服务
serviceName
的进程的Unix用户ID (UID)。- serviceUnregistered(service)#
- 参数
service – str
当该应用失去由
service
给出的总线服务名称所有权时,D-Bus服务器发出此信号。- startService(arg__1)#
- 参数
arg__1 – str
- 返回类型
QDBusReply
请求总线启动由名称
name
指定的服务。- unregisterService(arg__1)#
- 参数
arg__1 – str
- 返回类型
QDBusReply
释放对总线服务名称
serviceName
的声明,该名称之前已通过registerService()
注册。如果此应用程序拥有该名称的所有权,则将释放该名称供其他应用程序声明。如果它只排队等待该名称,则放弃其在队列中的位置。