class QDBusAbstractInterface#

QDBusAbstractInterface类是Qt D-Bus绑定中所有D-Bus接口的基类,允许访问远程接口。更多...

Inheritance diagram of PySide6.QtDBus.QDBusAbstractInterface

继承自: QDBusInterfaceQDBusConnectionInterface

概要#

方法#

注意

此文档可能包含从C++自动转换为Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您看到翻译的问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单的方式告诉我们。

详细描述#

生成的代码类也派生自QDBusAbstractInterface,这里描述的所有方法对生成的代码类也有效。除了这里描述的内容外,生成的代码类还提供了远程方法的成员函数,允许进行编译时正确参数和返回值的检查,以及属性类型匹配和信号参数匹配。

__init__(service, path, interface, connection, parent)#
参数:
asyncCall(method)#
参数:

method – str

返回类型:

QDBusPendingCall

asyncCallWithArgumentList(method, args)#
参数:
  • method – str

  • args – .list of QVariant

返回类型:

QDBusPendingCall

向通过 method 指定远程方法的此接口,使用 args 作为参数进行调用。此函数返回一个 QDBusPendingCall 对象,可用于跟踪回复的状态并在它到达后访问其内容。

通常,您应使用 asyncCall() 来放置调用。

注意

由于实现限制,对应用程序自身注册的对象的调用永远不会是异步的。

call(method)#
参数:

method – str

返回类型:

QDBusMessage

call(arg__1, arg__2, arg__3, arg__4, arg__5)
参数:
  • arg__1 – str

  • arg__2 – object

  • arg__3 – object

  • arg__4 – object

  • arg__5 – object

返回类型:

QDBusMessage

call(arg__1, arg__2, arg__3, arg__4)
参数:
  • arg__1 – str

  • arg__2 – object

  • arg__3 – object

  • arg__4 – object

返回类型:

QDBusMessage

call(arg__1, arg__2, arg__3)
参数:
  • arg__1 – str

  • arg__2 – object

  • arg__3 – object

返回类型:

QDBusMessage

这是一个重载的函数。

在此接口上调用方法 method,并将参数 args 传递给该方法。所有参数 args 必须可转换为 QVariant。

如果模式 NoWaitForReply,那么在放置调用后,此函数将立即返回,而无需等待远程方法回复。否则,mode 指示在等待回复到达时是否应该激活 Qt 事件循环。

如果此函数重新进入 Qt 事件循环以等待回复,它将排除用户输入。在等待期间,它可能传递信号和其他方法调用到您的应用程序。因此,必须在每次放置带有 call() 的调用时准备好处理重入。

注意

在 Qt 5.14 之前,此函数最多接受八个(8)个参数。

另请参阅

callWithArgumentList()

call(arg__1, arg__2)
参数:
  • arg__1 – str

  • arg__2 – object

返回类型:

QDBusMessage

警告

本节包含自动从 C++ 转换为 Python 的代码片段,可能包含错误。

在此接口上调用方法 method,并将参数 args 传递给该方法。所有参数 args 必须可转换为 QVariant。

传递给 call 的参数作为 D-Bus 输入参数传递给远程函数。输出参数在 QDBusMessage 回复中返回。如果回复是错误回复,lastError() 也将设置为错误消息的内容。

可以使用以下方式使用

value = retrieveValue()
reply = QDBusMessage()
api = interface.call("GetAPIVersion")
if api >= 14:
  reply = interface.call("ProcessWorkUnicode", value)
else:
  reply = interface.call("ProcessWork", "UTF-8", value.toUtf8())

此示例说明了具有 0、1 和 2 个参数的函数调用,以及在每个调用中传递的不同参数类型(第一个调用 "ProcessWorkUnicode" 将包含一个 Unicode 字符串,第二个调用 "ProcessWork" 将包含一个字符串和一个字节数组)。有关无阻塞(异步)调用的相同示例,请参阅 asyncCall()

注意

在 Qt 5.14 之前,此函数最多接受八个(8)个参数。

另请参阅

callWithArgumentList()

call(mode, method)
参数:
返回类型:

QDBusMessage

警告

本节包含自动从 C++ 转换为 Python 的代码片段,可能包含错误。

在此接口上调用方法 method,并将参数 args 传递给该方法。所有参数 args 必须可转换为 QVariant。

传递给 call 的参数作为 D-Bus 输入参数传递给远程函数。输出参数在 QDBusMessage 回复中返回。如果回复是错误回复,lastError() 也将设置为错误消息的内容。

可以使用以下方式使用

value = retrieveValue()
reply = QDBusMessage()
api = interface.call("GetAPIVersion")
if api >= 14:
  reply = interface.call("ProcessWorkUnicode", value)
else:
  reply = interface.call("ProcessWork", "UTF-8", value.toUtf8())

此示例说明了具有 0、1 和 2 个参数的函数调用,以及在每个调用中传递的不同参数类型(第一个调用 "ProcessWorkUnicode" 将包含一个 Unicode 字符串,第二个调用 "ProcessWork" 将包含一个字符串和一个字节数组)。有关无阻塞(异步)调用的相同示例,请参阅 asyncCall()

注意

在 Qt 5.14 之前,此函数最多接受八个(8)个参数。

另请参阅

callWithArgumentList()

call(arg__1, arg__2, arg__3, arg__4, arg__5, arg__6, arg__7, arg__8, arg__9, arg__10)
参数:
  • arg__1CallMode

  • arg__2 – str

  • arg__3 – object

  • arg__4 – object

  • arg__5 – object

  • arg__6 – object

  • arg__7 – object

  • arg__8 – object

  • arg__9 – 对象

  • arg__10 – 对象

返回类型:

QDBusMessage

call(arg__1, arg__2, arg__3, arg__4, arg__5, arg__6, arg__7, arg__8)
参数:
  • arg__1CallMode

  • arg__2 – str

  • arg__3 – object

  • arg__4 – object

  • arg__5 – object

  • arg__6 – object

  • arg__7 – object

  • arg__8 – object

返回类型:

QDBusMessage

call(arg__1, arg__2, arg__3, arg__4, arg__5, arg__6, arg__7)
参数:
  • arg__1CallMode

  • arg__2 – str

  • arg__3 – object

  • arg__4 – object

  • arg__5 – object

  • arg__6 – object

  • arg__7 – object

返回类型:

QDBusMessage

call(arg__1, arg__2, arg__3, arg__4, arg__5, arg__6)
参数:
  • arg__1CallMode

  • arg__2 – str

  • arg__3 – object

  • arg__4 – object

  • arg__5 – object

  • arg__6 – object

返回类型:

QDBusMessage

call(arg__1, arg__2, arg__3, arg__4, arg__5)
参数:
  • arg__1CallMode

  • arg__2 – str

  • arg__3 – object

  • arg__4 – object

  • arg__5 – object

返回类型:

QDBusMessage

call(arg__1, arg__2, arg__3, arg__4)
参数:
  • arg__1CallMode

  • arg__2 – str

  • arg__3 – object

  • arg__4 – object

返回类型:

QDBusMessage

call(arg__1, arg__2, arg__3)
参数:
  • arg__1CallMode

  • arg__2 – str

  • arg__3 – object

返回类型:

QDBusMessage

这是一个重载的函数。

在此接口上调用方法 method,并将参数 args 传递给该方法。所有参数 args 必须可转换为 QVariant。

如果模式 NoWaitForReply,那么在放置调用后,此函数将立即返回,而无需等待远程方法回复。否则,mode 指示在等待回复到达时是否应该激活 Qt 事件循环。

如果此函数重新进入 Qt 事件循环以等待回复,它将排除用户输入。在等待期间,它可能传递信号和其他方法调用到您的应用程序。因此,必须在每次放置带有 call() 的调用时准备好处理重入。

注意

在 Qt 5.14 之前,此函数最多接受八个(8)个参数。

另请参阅

callWithArgumentList()

call(arg__1, arg__2, arg__3, arg__4, arg__5, arg__6, arg__7, arg__8, arg__9)
参数:
  • arg__1CallMode

  • arg__2 – str

  • arg__3 – object

  • arg__4 – object

  • arg__5 – object

  • arg__6 – object

  • arg__7 – object

  • arg__8 – object

  • arg__9 – 对象

返回类型:

QDBusMessage

callWithArgumentList(mode, method, args)#
参数:
  • modeCallMode

  • method – str

  • args – .list of QVariant

返回类型:

QDBusMessage

在此接口上对由 method 指定的远程方法进行调用,使用 args 作为参数。此函数返回接收到的消息作为回复,这可以是一个正常的 ReplyMessage(表示成功)或 ErrorMessage(如果调用失败)。mode 参数指定如何放置此调用。

如果调用成功,则 lastError() 将会被清除;否则,它将包含此调用所产生的错误。

通常,您应使用 call() 进行调用。

警告

如果使用 UseEventLoop,您的代码必须准备处理任何再入性:其他方法调用和信号可能在此函数返回之前传递,以及其他 Qt 排队信号和事件。

callWithCallback(method, args, receiver, member)#
参数:
  • method – str

  • args – .list of QVariant

  • receiverQObject

  • member – 字符串

返回类型:

布尔值

这是一个重载的函数。

此函数已弃用。请使用重载版本。

在这个接口上放置对由 method 指定远程方法的调用,使用 args 作为参数。此函数调用排队后立即返回。远程函数的回复或由其产生的任何错误将发送到对象 receiver 上的 slot 处。

此函数返回 true 表示队列调用成功:它并不意味着调用成功。如果调用失败,则通过一个错误消息调用 slot。在这些情况下,不会设置 lastError()

另请参阅

QDBusError QDBusMessage

callWithCallback(method, args, receiver, member, errorSlot)
参数:
  • method – str

  • args – .list of QVariant

  • receiverQObject

  • member – 字符串

  • errorSlot – 字符串

返回类型:

布尔值

在这个接口上放置对由 method 指定远程方法的调用,使用 args 作为参数。此函数调用排队后立即返回。远程函数的回复发送到对象 receiver 上的 returnMethod。如果发生错误,将调用对象 receiver 上的 errorMethod

如果排队成功,此函数返回 true。它不表明已执行的调用成功。如果调用失败,将调用 errorMethod。如果排队失败,则函数返回 false 并不调用任何 slot。

returnMethod 必须具有与函数调用返回的类型相同的参数。可选地,它还可以有一个作为其最后一个或唯一参数的 QDBusMessage 参数。必须将 QDBusError 作为 errorMethod 的唯一参数。

注意

由于实现限制,对应用程序自身注册的对象的调用永远不会是异步的。

另请参阅

QDBusError QDBusMessage

connection()#
返回类型:

QDBusConnection

返回与此接口关联的连接。

interface()#
返回类型:

字符串

返回此接口的名称。

internalConstCall(mode, method[, args=list()])#
参数:
  • modeCallMode

  • method – str

  • args – .list of QVariant

返回类型:

QDBusMessage

internalPropGet(propname)#
参数:

propname – 字符串

返回类型:

对象

internalPropSet(propname, value)#
参数:
  • propname – 字符串

  • value – 对象

isInteractiveAuthorizationAllowed()#
返回类型:

布尔值

返回对于异步调用,调用者是否准备好等待交互式授权。

默认值为 false

isValid()#
返回类型:

布尔值

如果这是对远程对象的合法引用,则返回 true。如果有错误发生在创建此接口的过程中(例如,如果远程应用不存在),则返回 false

注意:当处理远程对象时,在创建 QDBusInterface 时并不总是能够确定其是否存在。

lastError()#
返回类型:

QDBusError

返回上一个操作产生的错误,如果没有错误产生则返回一个非法错误。

path()#
返回类型:

字符串

返回此接口关联的对象路径。

service()#
返回类型:

字符串

返回此接口关联的服务名称。

setInteractiveAuthorizationAllowed(enable)#
参数:

启用 – bool

配置对于异步调用,调用者是否准备好等待交互式授权。

如果将 enable 设置为 true,则通过此接口生成异步调用的 D-Bus 消息将设置 ALLOW_INTERACTIVE_AUTHORIZATION 标志。

此标志在非特权代码调用更特权的方法调用时非常有用,并且部署了允许可能进行交互式授权的授权框架。

默认值为 false

setTimeout(timeout)#
参数:

timeout – int

设置未来所有 DBus 调用的超时时间(以毫秒为单位),对于 timeout。-1 表示 DBus 默认超时时间(通常为 25 秒)。

另请参阅

timeout()

timeout()#
返回类型:

int

返回当前超时值(以毫秒为单位)。-1 表示默认 DBus 超时时间(通常为 25 秒)。

另请参阅

setTimeout()