PySide6.QtWebChannel.QWebChannel¶
- class QWebChannel¶
将QObjects暴露给远程HTML客户端。更多…
概要¶
属性¶
blockUpdatesᅟ- 当设置为true时,更新将被阻止,远程客户端将不会收到属性更改的通知propertyUpdateIntervalᅟ- 属性更新间隔
方法¶
def
__init__()def
blockUpdates()def
registerObject()
插槽¶
def
connectTo()def
disconnectFrom()
信号¶
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
QWebChannel填补了 C++ 应用程序和 HTML/JavaScript 应用程序之间的空白。通过将一个派生自 QObject 的对象发布到QWebChannel并在 HTML 端使用 qwebchannel.js,可以透明地访问 QObject 的属性和公共槽及方法。不需要手动传递消息和序列化数据,C++ 端的属性更新和信号发射会自动传输到可能远程运行的 HTML 客户端。在客户端,将为任何发布的 C++ QObject 创建一个 JavaScript 对象。它镜像了 C++ 对象的 API,因此可以直观地使用。QWebChannel透明地支持 QFuture。当客户端调用一个返回 QFuture 的方法时,QWebChannel只有在 QFuture 完成后才会发送带有 QFuture 结果的响应。通过使用QMetaType::registerConverter()定义与QJsonValue之间的转换器,支持自定义类型与JSON之间的转换。请注意,如果QJsonValue与预期格式不匹配,从QJsonValue到具体类型的自定义转换器必须失败。否则
QWebChannel无法回退到其默认的转换机制。自定义转换器在JavaScript端也可用。C++ 的
QWebChannelAPI 使得与任何 HTML 客户端进行通信成为可能,这些客户端可以在本地甚至远程机器上运行。唯一的限制是 HTML 客户端必须支持qwebchannel.js使用的 JavaScript 功能。因此,基本上可以与任何现代 HTML 浏览器或独立的 JavaScript 运行时(如 node.js)进行交互。还存在一个声明式的WebChannel API。
另请参阅
Qt WebChannel 独立示例 JavaScript API
registerConverter()注意
当使用
from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。- property blockUpdatesᅟ: bool¶
此属性设置为
true时,更新将被阻止,远程客户端将不会收到属性更改的通知。一旦通过将此属性设置为
false解除更新阻塞,更改将被记录并发送给客户端。默认情况下,更新不会被阻塞。- Access functions:
- property propertyUpdateIntervalᅟ: int¶
此属性保存属性更新间隔。
此间隔可以通过设置为正数来更改为不同的毫秒间隔。属性更新会在间隔到期后批量发送。如果设置为零,则在单个事件循环运行中发生的更新将被批量发送并在下一次运行中发送。如果为负数,更新将立即发送。默认值为50毫秒。
- Access functions:
使用给定的
parent构造QWebChannel对象。请注意,
QWebChannel只有在连接到QWebChannelAbstractTransport后才能完全运行。HTML客户端也需要使用qwebchannel.js进行适当设置:ref:`` 。 - blockUpdates()¶
- Return type:
布尔
另请参阅
属性
blockUpdatesᅟ的获取器。- blockUpdatesChanged(block)¶
- Parameters:
block – 布尔值
属性
blockUpdatesᅟ的通知信号。- connectTo(transport)¶
- Parameters:
将
QWebChannel连接到给定的transport对象。传输对象随后处理C++应用程序与远程HTML客户端之间的通信。
从
QWebChannel中注销给定的object。远程客户端将收到给定对象的
destroyed信号。- disconnectFrom(transport)¶
- Parameters:
断开
QWebChannel与transport对象的连接。另请参阅
- propertyUpdateInterval()¶
- Return type:
整数
属性
propertyUpdateIntervalᅟ的获取器。将单个对象注册到
QWebChannel。object的属性、信号和公共方法被发布到远程客户端。在那里,会构造一个标识符为id的对象。一个属性如果是
BINDABLE但没有NOTIFY信号,客户端上的属性更新将正常工作,但没有机制来注册变更通知的回调。- registerObjects(objects)¶
- Parameters:
objects – 字典,键类型为 .QString,值类型为 QObject。
将一组对象注册到
QWebChannel。对象的属性、信号和公共可调用方法被发布到远程客户端。在那里,使用在
objects映射中作为键的标识符构造一个对象。- registeredObjects()¶
- Return type:
字典的键类型为 .QString,值类型为 QObject。
返回已发布到远程客户端的注册对象映射。
- setBlockUpdates(block)¶
- Parameters:
block – 布尔值
另请参阅
属性
blockUpdatesᅟ的设置器。- setPropertyUpdateInterval(ms)¶
- Parameters:
ms – 整数
属性
propertyUpdateIntervalᅟ的设置器。