class QDBusConnectionInterface#

QDBusConnectionInterface 类提供了对 D-Bus 总线守护进程服务的访问。 更多...

Inheritance diagram of PySide6.QtDBus.QDBusConnectionInterface

概述#

方法#

信号#

注意

此文档可能包含自动从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()信号。

另请参阅

ServiceQueueOptions

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)#
参数

在调用callWithCallback()时发生错误时会发出此信号。 error指定错误。call是无法交付的消息。

另请参阅

callWithCallback()

isServiceRegistered(arg__1)#
参数

arg__1 – str

返回类型

QDBusReply

如果服务名称serviceName当前已注册,则返回true

registerService(arg__1, arg__2, arg__3)#
参数
返回类型

QDBusReply

请求在总线上注册服务名称serviceName。标志qoption指定如果serviceName已注册,则D-Bus服务器应该如何行为。标志roption指定服务器是否应允许其他应用程序替换已注册的名称。

如果服务注册成功,将发出serviceRegistered()信号。如果在队列中,则当获得名称时发出信号。如果roptionAllowReplacement,如果另一个应用程序替换了此应用程序,则发出serviceUnregistered()信号。

另请参阅

unregisterService()

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() 注册。如果此应用程序拥有该名称的所有权,则将释放该名称供其他应用程序声明。如果它只排队等待该名称,则放弃其在队列中的位置。