PySide6.QtDBus.QDBusMessage

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

无效的消息:这从未在从D-Bus接收的消息上设置

__init__()

构造一个空的、无效的QDBusMessage对象。

__init__(other)
Parameters:

其他QDBusMessage

构造由other给出的对象的副本。

注意:QDBusMessage 对象是共享的。对副本的修改也会影响原始对象。更多信息请参见 setDelayedReply()

arguments()
Return type:

.QVariant 列表

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

另请参阅

setArguments()

autoStartService()
Return type:

布尔

返回自动启动标志,由setAutoStartService()设置。默认情况下,此标志为true,这意味着如果服务尚未运行,Qt D-Bus将自动启动服务。

另请参阅

setAutoStartService()

static createError(err)
Parameters:

错误QDBusError

Return type:

QDBusMessage

构造一个新的DBus消息,表示给定的error

static createError(type, msg)
Parameters:
Return type:

QDBusMessage

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

static createError(name, msg)
Parameters:
  • name – str

  • msg – str

Return type:

QDBusMessage

构造一个新的DBus消息表示错误,带有给定的namemsg

createErrorReply(err)
Parameters:

错误QDBusError

Return type:

QDBusMessage

从给定的error对象构造一个新的DBus消息,表示错误回复消息。

createErrorReply(type, msg)
Parameters:
Return type:

QDBusMessage

为错误类型 type 使用消息 msg 构造一个新的 DBus 回复消息。返回 DBus 消息。

createErrorReply(name, msg)
Parameters:
  • name – str

  • msg – str

Return type:

QDBusMessage

构造一个新的DBus消息,表示一个错误回复消息,带有给定的namemsg

static createMethodCall(destination, path, interface, method)
Parameters:
  • destination – str

  • path – 字符串

  • interface – str

  • method – str

Return type:

QDBusMessage

构造一个新的DBus消息,表示一个方法调用。方法调用总是通知其目标地址(servicepathinterfacemethod)。

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

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

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

此函数返回一个QDBusMessage对象,可以通过call()发送。

createReply([arguments=list()])
Parameters:

arguments – QVariant 的列表

Return type:

QDBusMessage

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

createReply(argument)
Parameters:

参数 – 对象

Return type:

QDBusMessage

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

static createSignal(path, interface, name)
Parameters:
  • path – 字符串

  • interface – str

  • name – str

Return type:

QDBusMessage

使用给定的pathinterfacename构造一个新的DBus消息,表示信号发射。

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

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

static createTargetedSignal(service, path, interface, name)
Parameters:
  • service – str

  • path – 字符串

  • interface – str

  • name – str

Return type:

QDBusMessage

使用给定的pathinterfacename构造一个新的DBus消息,表示向特定目的地发出的信号。

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

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

errorMessage()
Return type:

字符串

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

errorName()
Return type:

字符串

返回接收到的错误名称。

interface()
Return type:

字符串

返回被调用方法的接口(在方法调用的情况下)或接收信号的接口。

isDelayedReply()
Return type:

布尔

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

isInteractiveAuthorizationAllowed()
Return type:

布尔

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

isReplyRequired()
Return type:

布尔

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

member()
Return type:

字符串

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

__lshift__(arg)
Parameters:

arg – 对象

Return type:

QDBusMessage

将参数 arg 添加到在方法调用或信号发射中通过 D-Bus 发送的参数列表中。

path()
Return type:

字符串

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

service()
Return type:

字符串

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

setArguments(arguments)
Parameters:

arguments – QVariant 的列表

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

另请参阅

arguments()

setAutoStartService(enable)
Parameters:

enable – 布尔值

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

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

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

另请参阅

autoStartService()

setDelayedReply(enable)
Parameters:

enable – 布尔值

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

在D-Bus中,所有的方法调用都必须生成一个回复给调用者,除非调用者明确表示不需要(参见isReplyRequired())。QtDBus会自动为任何被调用的槽生成这样的回复,但它也允许槽表明它们是否会在函数处理完成后稍后时间负责发送回复。

setInteractiveAuthorizationAllowed(enable)
Parameters:

enable – 布尔值

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

此标志仅对方法调用消息(MethodCallMessage)有意义。如果enable设置为true,该标志向被调用方表明,调用方已准备好等待交互式授权(例如通过Polkit)在实际方法处理之前进行。

如果enable设置为false,则不会设置标志,这意味着另一端应非交互式且迅速地做出任何授权决定。这是默认设置。

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

signature()
Return type:

字符串

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

swap(other)
Parameters:

其他QDBusMessage

将此QDBusMessage实例与other交换。

type()
Return type:

MessageType

返回消息类型。