Sur cette page

Fonctionnement interne

Qt contient un ensemble complet de composants fondamentaux, provenant principalement du Qt Core module. Qt utilise ces éléments pour fournir des composants de plus haut niveau destinés au développement d’interfaces utilisateur et d’applications. Les rubriques suivantes présentent les éléments les plus importants et expliquent comment les utiliser pour implémenter des fonctionnalités spécialisées non encore fournies par Qt.

Objets, propriétés et événements

La classe ` QObject ` constitue la base du modèle objet de Qt et est la classe parente de nombreuses classes Qt. Le modèle objet introduit de nombreux mécanismes, tels qu’un système de méta-objets qui permet l’introspection, la manipulation et l’appel, au moment de l’exécution, des propriétés et des méthodes de l’objet. Elle sert également de base au système d’événements de Qt, qui constitue un moyen de communication de bas niveau entre les objets basés sur l QObject. Une autre forme de communication de haut niveau est fournie par le mécanisme des signaux et des slots de Qt.

De plus, la fonction ` QObject ` fournit un mécanisme de temporisation simple grâce à ` QObject::startTimer()`. La classe ` QTimer ` offre quant à elle une interface de haut niveau pour les minuteries.

Classes de conteneurs

Un conteneur est une structure de données dont les instances sont des collections d'autres objets. Voici quelques exemples de conteneurs : les tableaux dynamiques, les files d'attente, les listes chaînées et les tableaux associatifs. Qt fournit un ensemble de classes de conteneurs polyvalentes, basées sur des modèles, permettant de structurer les données en mémoire.

Consultez la liste complète des classes de conteneurs pour plus de détails.

Internationalisation

Qt utilise Unicode pour l’encodage des chaînes de texte affichables. Unicode prend en charge tous les systèmes d’écriture couramment utilisés dans le monde et est idéal pour le développement multiplateforme. Les applications peuvent également être écrites pour prendre en charge un nombre illimité de langues différentes à partir d’une seule base de code grâce au puissant système d’internationalisation de Qt.

Communication inter-processus dans Qt

Qt fournit plusieurs classes permettant la communication entre processus. Vous pouvez également lancer et gérer des processus externes à l’aide de la classe ` QProcess `.

Threading

Qt offre des fonctionnalités permettant de gérer les threads et le code parallélisé de manière sûre et indépendante de la plate-forme.

Pour plus d'informations, consultez la section « Multithreading dans Qt ».

Prise en charge de C++20 dans Qt

Qt prend en charge le C++17 depuis la version 6.0. Cependant, nous travaillons en permanence à l'ajout de la prise en charge des nouvelles fonctionnalités du langage.

Prise en charge des plateformes

Qt vous permet d'écrire du code indépendant de la plateforme, c'est-à-dire qu'une même base de code peut être compilée et déployée sur différentes plateformes sans aucune modification. Lorsque vous devez utiliser des fonctionnalités spécifiques à une plateforme et vous intégrer aux bibliothèques système, Qt fournit également des solutions adaptées.

Qt s'intègre au système de fenêtrage de la plateforme cible à l'aide de Qt Platform Abstraction (QPA). QPA est une abstraction d'un système de fenêtrage qui rend le portage de Qt vers de nouvelles plateformes simple et rapide. Le protocole Wayland est l’un de ces systèmes. Qt peut être utilisé avec Wayland en tant que système de fenêtrage léger sur du matériel embarqué pour prendre en charge une interface utilisateur graphique multiprocessus.

Qt Platform Abstraction utilise le système de plugins de Qt. Ce système de plugins fournit des API permettant d’étendre Qt dans des domaines spécifiques (tels que l’ajout de la prise en charge de nouveaux formats d’image, de pilotes de bases de données, etc.) ainsi que d’écrire vos propres applications Qt extensibles prenant en charge des plugins tiers.

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