QWebChannel Class
Expone QObjects a clientes HTML remotos. Más...
| Header: | #include <QWebChannel> |
| qmake: | QT += webchannel |
| Inherits: | QObject |
Propiedades
- blockUpdates : bool
- propertyUpdateInterval : int
Funciones públicas
| QWebChannel(QObject *parent = nullptr) | |
| virtual | ~QWebChannel() |
| QBindable<bool> | bindableBlockUpdates() |
| QBindable<int> | bindablePropertyUpdateInterval() |
| bool | blockUpdates() const |
| void | deregisterObject(QObject *object) |
| int | propertyUpdateInterval() const |
| void | registerObject(const QString &id, QObject *object) |
| void | registerObjects(const QHash<QString, QObject *> &objects) |
| QHash<QString, QObject *> | registeredObjects() const |
| void | setBlockUpdates(bool block) |
| void | setPropertyUpdateInterval(int ms) |
Ranuras públicas
| void | connectTo(QWebChannelAbstractTransport *transport) |
| void | disconnectFrom(QWebChannelAbstractTransport *transport) |
Señales
| void | blockUpdatesChanged(bool block) |
Descripción Detallada
El QWebChannel llena el vacío entre las aplicaciones C++ y las aplicaciones HTML/JavaScript. Publicando un objeto derivado de QObject en un QWebChannel y utilizando el qwebchannel.js en el lado HTML, se puede acceder de forma transparente a las propiedades y a las ranuras y métodos públicos de QObject. No es necesario el paso manual de mensajes ni la serialización de datos, las actualizaciones de propiedades y la emisión de señales en el lado C++ se transmiten automáticamente a los clientes HTML que potencialmente se ejecutan de forma remota. En el lado del cliente, se creará un objeto JavaScript para cualquier C++ publicado QObject. Refleja la API del objeto C++ y, por lo tanto, se puede utilizar de forma intuitiva.
QWebChannel soporta de forma transparente QFuture. Cuando un cliente llama a un método que devuelve un QFuture, QWebChannel enviará una respuesta con el resultado QFuture sólo después de que el QFuture haya terminado.
La conversión personalizada de tipos hacia y desde JSON es soportada definiendo convertidores con QMetaType::registerConverter() hacia y desde QJsonValue. Nótese que los convertidores personalizados desde QJsonValue hacia un tipo concreto deben fallar si el QJsonValue no coincide con el formato esperado. De lo contrario, QWebChannel no puede recurrir a sus mecanismos de conversión predeterminados. Los conversores personalizados también están disponibles en JavaScript.
La API C++ de QWebChannel permite hablar con cualquier cliente HTML, que podría ejecutarse en una máquina local o incluso remota. La única limitación es que el cliente HTML sea compatible con las funciones de JavaScript utilizadas por qwebchannel.js. De este modo, se puede interactuar básicamente con cualquier navegador HTML moderno o tiempo de ejecución de JavaScript independiente, como node.js.
También existe una versión declarativa WebChannel API.
Véase también Qt WebChannel Standalone Example, JavaScript API y QMetaType::registerConverter().
Documentación de propiedades
[bindable] blockUpdates : bool
Nota: Esta propiedad es compatible con los enlaces QProperty.
Cuando se establece a true, las actualizaciones se bloquean y los clientes remotos no serán notificados de los cambios en las propiedades.
Los cambios se registran y se envían a los clientes una vez que las actualizaciones se desbloquean de nuevo estableciendo esta propiedad a false. Por defecto, las actualizaciones no se bloquean.
Funciones de acceso:
| bool | blockUpdates() const |
| void | setBlockUpdates(bool block) |
Señal de notificador:
| void | blockUpdatesChanged(bool block) |
[bindable] propertyUpdateInterval : int
Nota: Esta propiedad admite enlaces QProperty.
Esta propiedad contiene el intervalo de actualización de la propiedad.
Este intervalo puede cambiarse a un intervalo diferente en milisegundos estableciéndolo a un valor positivo. Las actualizaciones de las propiedades se agrupan por lotes y se envían cuando expira el intervalo. Si se establece a cero, las actualizaciones que se producen dentro de una sola ejecución del bucle de eventos se agrupan por lotes y se envían en la siguiente ejecución. Si es negativo, las actualizaciones se enviarán inmediatamente. El valor por defecto es 50 milisegundos.
Funciones de acceso:
| int | propertyUpdateInterval() const |
| void | setPropertyUpdateInterval(int ms) |
Documentación de funciones miembro
[explicit] QWebChannel::QWebChannel(QObject *parent = nullptr)
Construye el objeto QWebChannel con la dirección parent.
Ten en cuenta que un QWebChannel sólo es completamente operativo una vez que lo conectas a un QWebChannelAbstractTransport. Los clientes HTML también necesitan ser configurados apropiadamente usando qwebchannel.js.
[virtual noexcept] QWebChannel::~QWebChannel()
Destruye el QWebChannel.
[slot] void QWebChannel::connectTo(QWebChannelAbstractTransport *transport)
Conecta el QWebChannel al objeto transport dado.
El objeto de transporte se encarga entonces de la comunicación entre la aplicación C++ y un cliente HTML remoto.
Véase también QWebChannelAbstractTransport y QWebChannel::disconnectFrom().
[invokable] void QWebChannel::deregisterObject(QObject *object)
Cancela el registro de object en QWebChannel.
Los clientes remotos recibirán una señal destroyed para el objeto dado.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
Véase también QWebChannel::registerObjects(), QWebChannel::registerObject(), y QWebChannel::registeredObjects().
[slot] void QWebChannel::disconnectFrom(QWebChannelAbstractTransport *transport)
Desconecta el QWebChannel del objeto transport.
Véase también QWebChannel::connectTo().
[invokable] void QWebChannel::registerObject(const QString &id, QObject *object)
Registra un único objeto en QWebChannel.
Las propiedades, señales y métodos públicos del object se publican en los clientes remotos. A continuación, se construye un objeto con el identificador id.
Una propiedad que es BINDABLE pero no tiene una señal NOTIFY tendrá actualizaciones de la propiedad de trabajo en el lado del cliente, pero no hay mecanismo para registrar una devolución de llamada para las notificaciones de cambio.
Nota: Una limitación actual es que los objetos deben registrarse antes de inicializar cualquier cliente.
Nota: Esta función puede invocarse a través del sistema de meta-objetos y desde QML. Véase Q_INVOKABLE.
Véase también QWebChannel::registerObjects(), QWebChannel::deregisterObject(), y QWebChannel::registeredObjects().
void QWebChannel::registerObjects(const QHash<QString, QObject *> &objects)
Registra un grupo de objetos en QWebChannel.
Las propiedades, señales y métodos públicos invocables de los objetos se publican en los clientes remotos. A continuación, se construye un objeto con el identificador utilizado como clave en el mapa objects.
Nota: Una limitación actual es que los objetos deben registrarse antes de inicializar cualquier cliente.
Véase también QWebChannel::registerObject(), QWebChannel::deregisterObject() y QWebChannel::registeredObjects().
QHash<QString, QObject *> QWebChannel::registeredObjects() const
Devuelve el mapa de objetos registrados que se publican a clientes remotos.
Véase también QWebChannel::registerObjects(), QWebChannel::registerObject() y QWebChannel::deregisterObject().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.