class QDBusMessage#

QDBusMessage 类代表通过 D-Bus 总线发送或接收的一个消息。 更多...

概述#

方法#

静态函数#

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

详细说明#

此对象可以表示总线上可能发生的四种不同类型的信息( MessageType

  • 方法调用

  • 方法返回值

  • 信号发射

  • 错误代码

使用静态方法createError()、createMethodCall()和createSignal()创建此类对象。使用send()方法发送消息。

class MessageType#

可能的消息类型

常数

说明

QDBusMessage.MethodCallMessage

代表入站或出站方法调用的消息

QDBusMessage.SignalMessage

代表入站或出站信号发射的消息

QDBusMessage.ReplyMessage

代表方法调用返回值的消息

QDBusMessage.ErrorMessage

代表方法调用响应中的错误条件消息

QDBusMessage.InvalidMessage

无效消息:这永远不会在从Dbus接收的消息上设置

__init__(other)#
参数:

otherQDBusMessage

创建由other提供的对象的副本。

注意:QDBusMessage对象是共享的。对副本所做的修改将影响原始对象。有关更多信息,请参阅setDelayedReply()

__init__()

创建一个空的、无效的QDBusMessage对象。

arguments()#
返回类型::

QVariant列表

返回将要发送或从Dbus接收的参数列表。

另请参阅

setArguments()

autoStartService()#
返回类型::

bool

返回自动启动标志,由 setAutoStartService() 设置。默认情况下,此标志为 true,表示 Qt D-Bus 会在服务未运行时自动启动它。

另请参阅

setAutoStartService()

static createError(type, msg)#
参数:
返回类型::

QDBusMessage

使用消息 msg 构造新错误类型的 DBus 消息。返回 DBus 消息。

static createError(err)
参数:

errQDBusError

返回类型::

QDBusMessage

构造表示给定错误的 DBus 消息。

static createError(name, msg)
参数:
  • name – str

  • msg – str

返回类型::

QDBusMessage

使用给定的 namemsg 构造表示错误的新的 DBus 消息。

createErrorReply(type, msg)#
参数:
返回类型::

QDBusMessage

使用消息 msg 构造新错误类型的 DBus 应答消息。返回 DBus 消息。

createErrorReply(err)
参数:

errQDBusError

返回类型::

QDBusMessage

从给定的错误对象构造表示错误应答消息的新的 DBus 消息。

createErrorReply(name, msg)
参数:
  • name – str

  • msg – str

返回类型::

QDBusMessage

使用给定的 namemsg 构造表示错误应答消息的新的 DBus 消息。

static createMethodCall(destination, path, interface, method)#
参数:
  • destination – str

  • path – str

  • interface – str

  • 方法 – 字符串

返回类型::

QDBusMessage

构建一个表示方法调用的新DBus消息。方法调用始终通知其目标地址(servicepathinterfacemethod)。

DBus总线允许在不指定目标接口的情况下调用给定远程对象上的方法,如果方法名称唯一。但是,如果远程对象上的两个接口导出相同的方法名称,结果是不确定的(可能调用其中之一或返回错误)。

在使用点对点上下文(即在总线上不是)DBus时,service参数是可选的。

QDBusInterface类提供了一个更简单的抽象,用于同步方法调用。

此函数返回一个QDBusMessage对象,可以使用call() 方法发送。

createReply([arguments=list()])#
参数:

arguments – .QVariant列表

返回类型::

QDBusMessage

构建一个表示回复的新DBus消息,带有给定的arguments

createReply(argument)
参数:

argument – 对象

返回类型::

QDBusMessage

构建一个表示回复的新DBus消息,带有给定的argument

static createSignal(path, interface, name)#
参数:
  • path – str

  • interface – str

  • name – str

返回类型::

QDBusMessage

构建一个具有给定pathinterfacename的新DBus消息,表示信号发射。

DBus信号从一个应用程序发出,并被所有监听该接口信号的程序接收。

返回的QDBusMessage对象可以通过send()函数发送。

static createTargetedSignal(service, path, interface, name)#
参数:
  • service – 字符串

  • path – str

  • interface – str

  • name – str

返回类型::

QDBusMessage

通过给定的 pathinterfacename 构建一个新的DBus消息,表示向特定目的地发射一个信号。

DBus信号从一个应用程序发出,只能被拥有目标 service 名称的应用程序接收。

返回的QDBusMessage对象可以通过send()函数发送。

errorMessage()#
返回类型::

str

返回接收到的错误相关的人类可读消息。

errorName()#
返回类型::

str

返回接收到的错误名称。

interface()#
返回类型::

str

返回调用方法的接口(如果是方法调用的情况)或接收到的信号的接口。

isDelayedReply()#
返回类型::

bool

返回延迟响应标志,由 setDelayedReply() 设置。默认情况下,此标志为false,意味着Qt D-Bus在需要时将生成自动响应。

isInteractiveAuthorizationAllowed()#
返回类型::

bool

返回消息是否设置了 ALLOW_INTERACTIVE_AUTHORIZATION 标志。

isReplyRequired()#
返回类型::

bool

返回标志,指示此消息是否应看到响应。这对于 method call messages 有意义:其他类型的消息不能有响应,此函数将始终对它们返回false。

member()#
返回类型::

str

返回所发射信号的名称或所调用方法的名称。

__lshift__(arg)#
参数:

arg – object

返回类型::

QDBusMessage

将参数 arg 添加到方法调用或信号发射中要发送到DBus的参数列表中。

path()#
返回类型::

str

返回消息所发送到的对象路径(在方法调用的情况下)或消息接收到的对象路径(对于信号)。

service()#
返回类型::

str

返回服务名称或远程方法调用的大巴地址。

setArguments(arguments)#
参数:

arguments – .QVariant列表

将即将通过D-Bus发送的参数设置为 arguments。这些将是最方法调用或信号中的参数。

另请参阅

arguments()

setAutoStartService(enable)#
参数:

enable – bool

将自动启动标志设置为 enable。此标志只对方法调用消息有意义,它告诉D-Bus服务器是否自动启动负责该服务名称的服务。

默认情况下此标志为true,即服务将自动启动。这意味着

当发送此方法调用的服务已经运行时,该方法调用会发送给它。如果服务尚未运行,则会请求D-Bus守护程序自动启动分配给此服务名称的服务。这是通过在D-Bus服务器已知的目录中放置的.service文件来处理的。然后,每个文件都包含一个服务名称和当请求此服务名称时应执行程序的路径。

另请参阅

autoStartService()

setDelayedReply(enable)#
参数:

enable – bool

设置消息是否将在以后回复(如果 enable 为true),或者如果Qt D-Bus应生成自动回复(如果 enable 为false)。

D-Bus中,所有方法调用都必须对调用者生成回复,除非调用者明确表示不希望这样做(参见 isReplyRequired() )。 QtDBus 自动为任何被调用的插槽生成此类回复,但它还允许插槽指示是否将在函数处理完毕后负责发送回复。

setInteractiveAuthorizationAllowed(enable)#
参数:

enable – bool

启用或禁用消息中的 ALLOW_INTERACTIVE_AUTHORIZATION 标志。

此标志仅对方法调用消息有意义(MethodCallMessage)。如果 enable 设置为 true,则该标志表示方法的调用方已准备好等待交互式授权发生(例如通过 Polkit)后再实际处理该方法。

如果 enable 设置为 false,则不设置该标志,这意味着另一端应非线性地、及时地做出任何授权决策。这是默认设置。

org.freedesktop.DBus.Error.InteractiveAuthorizationRequired 错误表示授权失败,但如果设置此标志可能已成功。

signature()#
返回类型::

str

返回收到的信号的签名或方法调用输出的参数签名。

swap(other)#
参数:

otherQDBusMessage

将此 QDBusMessage 实例与 other 交换。

type()#
返回类型::

消息类型

返回消息类型。