- class QDBusAbstractInterface#
QDBusAbstractInterface
类是Qt D-Bus绑定中所有D-Bus接口的基类,允许访问远程接口。更多...继承自:
QDBusInterface
,QDBusConnectionInterface
概要#
方法#
def
__init__()
def
asyncCall()
定义
call()
定义
connection()
定义
interface()
定义
isValid()
定义
lastError()
定义
path()
定义
service()
定义
setTimeout()
定义
timeout()
注意
此文档可能包含从C++自动转换为Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您看到翻译的问题,您也可以通过在https:/bugreports.qt.io/projects/PYSIDE创建工单的方式告诉我们。
详细描述#
生成的代码类也派生自
QDBusAbstractInterface
,这里描述的所有方法对生成的代码类也有效。除了这里描述的内容外,生成的代码类还提供了远程方法的成员函数,允许进行编译时正确参数和返回值的检查,以及属性类型匹配和信号参数匹配。另请参阅
- __init__(service, path, interface, connection, parent)#
- 参数:
service – str
path – str
interface – str
connection –
QDBusConnection
parent –
QObject
- asyncCall(method)#
- 参数:
method – str
- 返回类型:
- asyncCallWithArgumentList(method, args)#
- 参数:
method – str
args – .list of QVariant
- 返回类型:
向通过
method
指定远程方法的此接口,使用args
作为参数进行调用。此函数返回一个QDBusPendingCall
对象,可用于跟踪回复的状态并在它到达后访问其内容。通常,您应使用
asyncCall()
来放置调用。注意
由于实现限制,对应用程序自身注册的对象的调用永远不会是异步的。
- call(method)#
- 参数:
method – str
- 返回类型:
- 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
- 返回类型:
- call(arg__1, arg__2, arg__3, arg__4)
- 参数:
arg__1 – str
arg__2 – object
arg__3 – object
arg__4 – object
- 返回类型:
- call(arg__1, arg__2, arg__3)
- 参数:
arg__1 – str
arg__2 – object
arg__3 – object
- 返回类型:
这是一个重载的函数。
在此接口上调用方法
method
,并将参数args
传递给该方法。所有参数args
必须可转换为 QVariant。如果模式
NoWaitForReply
,那么在放置调用后,此函数将立即返回,而无需等待远程方法回复。否则,mode
指示在等待回复到达时是否应该激活 Qt 事件循环。如果此函数重新进入 Qt 事件循环以等待回复,它将排除用户输入。在等待期间,它可能传递信号和其他方法调用到您的应用程序。因此,必须在每次放置带有
call()
的调用时准备好处理重入。- call(arg__1, arg__2)
- 参数:
arg__1 – str
arg__2 – object
- 返回类型:
警告
本节包含自动从 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()
。- call(mode, method)
- 参数:
mode –
CallMode
method – str
- 返回类型:
警告
本节包含自动从 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()
。- call(arg__1, arg__2, arg__3, arg__4, arg__5, arg__6, arg__7, arg__8, arg__9, arg__10)
- 参数:
arg__1 –
CallMode
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 – 对象
- 返回类型:
- call(arg__1, arg__2, arg__3, arg__4, arg__5, arg__6, arg__7, arg__8)
- 参数:
arg__1 –
CallMode
arg__2 – str
arg__3 – object
arg__4 – object
arg__5 – object
arg__6 – object
arg__7 – object
arg__8 – object
- 返回类型:
- call(arg__1, arg__2, arg__3, arg__4, arg__5, arg__6, arg__7)
- 参数:
arg__1 –
CallMode
arg__2 – str
arg__3 – object
arg__4 – object
arg__5 – object
arg__6 – object
arg__7 – object
- 返回类型:
- call(arg__1, arg__2, arg__3, arg__4, arg__5, arg__6)
- 参数:
arg__1 –
CallMode
arg__2 – str
arg__3 – object
arg__4 – object
arg__5 – object
arg__6 – object
- 返回类型:
- call(arg__1, arg__2, arg__3, arg__4, arg__5)
- 参数:
arg__1 –
CallMode
arg__2 – str
arg__3 – object
arg__4 – object
arg__5 – object
- 返回类型:
- call(arg__1, arg__2, arg__3, arg__4)
- 参数:
arg__1 –
CallMode
arg__2 – str
arg__3 – object
arg__4 – object
- 返回类型:
- call(arg__1, arg__2, arg__3)
- 参数:
arg__1 –
CallMode
arg__2 – str
arg__3 – object
- 返回类型:
这是一个重载的函数。
在此接口上调用方法
method
,并将参数args
传递给该方法。所有参数args
必须可转换为 QVariant。如果模式
NoWaitForReply
,那么在放置调用后,此函数将立即返回,而无需等待远程方法回复。否则,mode
指示在等待回复到达时是否应该激活 Qt 事件循环。如果此函数重新进入 Qt 事件循环以等待回复,它将排除用户输入。在等待期间,它可能传递信号和其他方法调用到您的应用程序。因此,必须在每次放置带有
call()
的调用时准备好处理重入。- call(arg__1, arg__2, arg__3, arg__4, arg__5, arg__6, arg__7, arg__8, arg__9)
- 参数:
arg__1 –
CallMode
arg__2 – str
arg__3 – object
arg__4 – object
arg__5 – object
arg__6 – object
arg__7 – object
arg__8 – object
arg__9 – 对象
- 返回类型:
- callWithArgumentList(mode, method, args)#
- 参数:
mode –
CallMode
method – str
args – .list of QVariant
- 返回类型:
在此接口上对由
method
指定的远程方法进行调用,使用args
作为参数。此函数返回接收到的消息作为回复,这可以是一个正常的ReplyMessage
(表示成功)或ErrorMessage
(如果调用失败)。mode
参数指定如何放置此调用。如果调用成功,则
lastError()
将会被清除;否则,它将包含此调用所产生的错误。通常,您应使用
call()
进行调用。警告
如果使用
UseEventLoop
,您的代码必须准备处理任何再入性:其他方法调用和信号可能在此函数返回之前传递,以及其他 Qt 排队信号和事件。- callWithCallback(method, args, receiver, member)#
- 参数:
method – str
args – .list of QVariant
receiver –
QObject
member – 字符串
- 返回类型:
布尔值
这是一个重载的函数。
此函数已弃用。请使用重载版本。
在这个接口上放置对由
method
指定远程方法的调用,使用args
作为参数。此函数调用排队后立即返回。远程函数的回复或由其产生的任何错误将发送到对象receiver
上的slot
处。此函数返回
true
表示队列调用成功:它并不意味着调用成功。如果调用失败,则通过一个错误消息调用 slot。在这些情况下,不会设置lastError()
。另请参阅
- callWithCallback(method, args, receiver, member, errorSlot)
- 参数:
method – str
args – .list of QVariant
receiver –
QObject
member – 字符串
errorSlot – 字符串
- 返回类型:
布尔值
在这个接口上放置对由
method
指定远程方法的调用,使用args
作为参数。此函数调用排队后立即返回。远程函数的回复发送到对象receiver
上的returnMethod
。如果发生错误,将调用对象receiver
上的errorMethod
。如果排队成功,此函数返回
true
。它不表明已执行的调用成功。如果调用失败,将调用errorMethod
。如果排队失败,则函数返回false
并不调用任何 slot。returnMethod
必须具有与函数调用返回的类型相同的参数。可选地,它还可以有一个作为其最后一个或唯一参数的QDBusMessage
参数。必须将QDBusError
作为errorMethod
的唯一参数。- connection()#
- 返回类型:
返回与此接口关联的连接。
- interface()#
- 返回类型:
字符串
返回此接口的名称。
- internalConstCall(mode, method[, args=list()])#
- 参数:
mode –
CallMode
method – str
args – .list of QVariant
- 返回类型:
- internalPropGet(propname)#
- 参数:
propname – 字符串
- 返回类型:
对象
- internalPropSet(propname, value)#
- 参数:
propname – 字符串
value – 对象
- isInteractiveAuthorizationAllowed()#
- 返回类型:
布尔值
返回对于异步调用,调用者是否准备好等待交互式授权。
默认值为
false
。- isValid()#
- 返回类型:
布尔值
如果这是对远程对象的合法引用,则返回
true
。如果有错误发生在创建此接口的过程中(例如,如果远程应用不存在),则返回false
。注意:当处理远程对象时,在创建
QDBusInterface
时并不总是能够确定其是否存在。- lastError()#
- 返回类型:
返回上一个操作产生的错误,如果没有错误产生则返回一个非法错误。
- path()#
- 返回类型:
字符串
返回此接口关联的对象路径。
- service()#
- 返回类型:
字符串
返回此接口关联的服务名称。
- setInteractiveAuthorizationAllowed(enable)#
- 参数:
启用 – bool
配置对于异步调用,调用者是否准备好等待交互式授权。
如果将
enable
设置为true
,则通过此接口生成异步调用的 D-Bus 消息将设置ALLOW_INTERACTIVE_AUTHORIZATION
标志。此标志在非特权代码调用更特权的方法调用时非常有用,并且部署了允许可能进行交互式授权的授权框架。
默认值为
false
。- setTimeout(timeout)#
- 参数:
timeout – int
设置未来所有 DBus 调用的超时时间(以毫秒为单位),对于
timeout
。-1 表示 DBus 默认超时时间(通常为 25 秒)。另请参阅
- timeout()#
- 返回类型:
int
返回当前超时值(以毫秒为单位)。-1 表示默认 DBus 超时时间(通常为 25 秒)。
另请参阅