Sur cette page

Qt WebChannel Exemple autonome

Une conversation simple entre un serveur et un client distant s'exécutant dans un navigateur.

Fenêtre de dialogue affichant la liste des messages « ping » et « pong » échangés, comportant un champ de saisie et un bouton « Envoyer », au-dessus d'un terminal affichant le journal de connexion

L'exemple autonome montre comment utiliser l'API C++ d'QWebChannel pour communiquer avec un client externe. Il s'agit d'une simple conversation entre une application C++ et un client HTML distant s'exécutant dans votre navigateur par défaut.

Exécution de l'exemple

Vous pouvez exécuter l'exemple à partir de :

Communication avec un client distant

L'application C++ instancie un objet ` QWebChannel ` et publie un objet ` Core ` via celui-ci. Côté client distant, la page index.html s'ouvre dans votre navigateur par défaut. Les deux affichent une boîte de dialogue contenant la liste des messages reçus ainsi qu'un champ de saisie permettant d'envoyer des messages à l'autre extrémité.

L’ Core émet le signal Core::sendText() lorsque l’utilisateur envoie un message. Le signal est automatiquement propagé vers le client HTML. Lorsque l’utilisateur saisit un message côté HTML, la méthode Core::receiveText() est appelée.

Toutes les communications entre le client HTML et le serveur C++ s’effectuent via un WebSocket. Le côté C++ instancie un ` QWebSocketServer ` et encapsule les connexions ` QWebSocket ` entrantes dans des objets ` QWebChannelAbstractTransport `. Ces objets sont ensuite connectés à l’instance ` QWebChannel `.

Affichage de la page client

La page index.html et le script qwebchannel.js qu’elle charge sont compilés dans l’application en tant que ressources Qt. L’application les sert via un serveur HTTP en boucle fermée minimaliste et ouvre le navigateur par défaut à l’URL http:// résultante. Une URL en boucle fermée fonctionne même lorsque le navigateur et l’application ne partagent pas le même système de fichiers, comme sur une plateforme en bac à sable ou compilée de manière croisée.

L'exemple implémente son propre serveur HTTP minimal, de sorte que sa compilation ne nécessite pas le module Qt HTTP Server. Dans une application réelle, vous utiliseriez plutôt QHttpServer.

Projet d’exemple sur code.qt.io

Voir également l’API JavaScript d’Qt WebChannel .

© 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.