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

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 :
- Qt Creator
Ouvrez le mode « Welcome » et sélectionnez l'exemple à l'adresse Examples. Pour plus d'informations, consultez Qt Creator: Tutoriel : Compiler et exécuter.
- Qt Extension for Visual Studio Code
Exécutez la commande « Qt: Open Qt examples » à partir de Command Palette, puis sélectionnez l'exemple dans la liste. Pour plus d'informations, consultez Qt Extension for Visual Studio Code: Tutoriel : Compiler et exécuter.
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.
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.