Sur cette page

QWebChannel Class

Expose les objets QObject aux clients HTML distants. En savoir plus…

Header: #include <QWebChannel>
qmake: QT += webchannel
Inherits: QObject

Propriétés

Fonctions publiques

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)

Emplacements publics

void connectTo(QWebChannelAbstractTransport *transport)
void disconnectFrom(QWebChannelAbstractTransport *transport)

Signaux

void blockUpdatesChanged(bool block)

Description détaillée

QWebChannel comble le fossé entre les applications C++ et les applications HTML/JavaScript. En publiant un objet dérivé de ` QObject ` vers un QWebChannel et en utilisant le fichier ` qwebchannel.js` côté HTML, il est possible d’accéder de manière transparente aux propriétés, aux slots publics et aux méthodes de l’ QObject. Aucun passage manuel de messages ni aucune sérialisation des données ne sont nécessaires : les mises à jour des propriétés et l'émission de signaux côté C++ sont automatiquement transmises aux clients HTML, qui peuvent s'exécuter à distance. Côté client, un objet JavaScript est créé pour chaque ` QObject` publié en C++. Il reflète l'API de l'objet C++ et s'utilise donc de manière intuitive.

QWebChannel prend en charge de manière transparente l’ QFuture. Lorsqu’un client appelle une méthode renvoyant un QFuture, QWebChannel n’envoie une réponse contenant le résultat de l’ QFuture qu’une fois l’ QFuture terminée.

La conversion personnalisée de types vers et depuis JSON est prise en charge en définissant des convertisseurs avec ` QMetaType::registerConverter()` vers et depuis ` QJsonValue`. Notez que les convertisseurs personnalisés de ` QJsonValue ` vers un type concret doivent échouer si le ` QJsonValue ` ne correspond pas au format attendu. Sinon, QWebChannel ne peut pas se rabattre sur ses mécanismes de conversion par défaut. Des convertisseurs personnalisés sont également disponibles côté JavaScript.

L’API C++ de QWebChannel permet de communiquer avec n’importe quel client HTML, qu’il s’exécute sur une machine locale ou même distante. La seule contrainte est que le client HTML prenne en charge les fonctionnalités JavaScript utilisées par qwebchannel.js. Ainsi, il est possible d’interagir avec pratiquement n’importe quel navigateur HTML moderne ou environnement d’exécution JavaScript autonome, tel que node.js.

Il existe également une version déclarative d’ WebChannel API.

Voir également l’exemple autonome d’Qt WebChannel , l’API JavaScript et QMetaType::registerConverter().

Documentation sur les propriétés

[bindable] blockUpdates : bool

Remarque : cette propriété prend en charge les liaisons de type « QProperty ».

Lorsqu’elle est définie sur « true », les mises à jour sont bloquées et les clients distants ne sont pas informés des modifications apportées aux propriétés.

Les modifications sont enregistrées et envoyées aux clients dès que les mises à jour sont à nouveau autorisées, en définissant cette propriété sur « false ». Par défaut, les mises à jour ne sont pas bloquées.

Fonctions d’accès :

bool blockUpdates() const
void setBlockUpdates(bool block)

Signal de notification :

void blockUpdatesChanged(bool block)

[bindable] propertyUpdateInterval : int

Remarque : cette propriété prend en charge les liaisons de type « QProperty ».

Cette propriété contient l'intervalle de mise à jour de la propriété.

Cet intervalle peut être modifié en lui attribuant une valeur positive exprimée en millisecondes. Les mises à jour de la propriété sont regroupées et envoyées une fois l’intervalle écoulé. Si la valeur est définie sur zéro, les mises à jour survenant au cours d’un même cycle d’événements sont regroupées et envoyées lors du cycle suivant. Si la valeur est négative, les mises à jour sont envoyées immédiatement. La valeur par défaut est de 50 millisecondes.

Fonctions d'accès :

int propertyUpdateInterval() const
void setPropertyUpdateInterval(int ms)

Documentation sur les fonctions membres

[explicit] QWebChannel::QWebChannel(QObject *parent = nullptr)

Crée l'objet QWebChannel avec l'parent fourni.

Notez qu’un QWebChannel n’est pleinement opérationnel qu’une fois connecté à une QWebChannelAbstractTransport. Les clients HTML doivent également être configurés correctement à l’aide de qwebchannel.js.

[virtual noexcept] QWebChannel::~QWebChannel()

Supprime l'QWebChannel.

[slot] void QWebChannel::connectTo(QWebChannelAbstractTransport *transport)

Relie l'QWebChannel à l'objet transport spécifié.

L'objet de transport gère alors la communication entre l'application C++ et un client HTML distant.

Voir également QWebChannelAbstractTransport et QWebChannel::disconnectFrom().

[invokable] void QWebChannel::deregisterObject(QObject *object)

Désenregistre l'object spécifiée de l'QWebChannel.

Les clients distants recevront un signal « destroyed » pour l’objet spécifié.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

Voir également QWebChannel::registerObjects(), QWebChannel::registerObject() et QWebChannel::registeredObjects().

[slot] void QWebChannel::disconnectFrom(QWebChannelAbstractTransport *transport)

Déconnecte l'objet ` QWebChannel ` de l'objet ` transport `.

Voir aussi QWebChannel::connectTo().

[invokable] void QWebChannel::registerObject(const QString &id, QObject *object)

Enregistre un objet unique auprès de l'QWebChannel.

Les propriétés, signaux et méthodes publiques de l’ object sont publiés vers les clients distants. Un objet portant l’identifiant id y est alors créé.

Une propriété de type « BINDABLE » mais ne disposant pas d’un signal « NOTIFY » permettra la mise à jour de la propriété côté client, mais ne disposera d’aucun mécanisme permettant d’enregistrer un rappel pour les notifications de modification.

Remarque : une limitation actuelle est que les objets doivent être enregistrés avant l’initialisation de tout client.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

Voir également QWebChannel::registerObjects(), QWebChannel::deregisterObject() et QWebChannel::registeredObjects().

void QWebChannel::registerObjects(const QHash<QString, QObject *> &objects)

Enregistre un groupe d'objets dans la carte « QWebChannel ».

Les propriétés, les signaux et les méthodes publiques invoquables des objets sont publiés auprès des clients distants. À ce stade, un objet portant l’identifiant utilisé comme clé dans la table « objects » est alors créé.

Remarque : une limitation actuelle est que les objets doivent être enregistrés avant l’initialisation de tout client.

Voir également ` QWebChannel::registerObject()`, ` QWebChannel::deregisterObject()` et ` QWebChannel::registeredObjects()`.

QHash<QString, QObject *> QWebChannel::registeredObjects() const

Renvoie la carte des objets enregistrés qui sont publiés vers des clients distants.

Voir également QWebChannel::registerObjects(), QWebChannel::registerObject() et 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.