Graphiques à partir de données CSV
Comment visualiser les données d'un fichier CSV dans Qt Graphs.

L'exemple « Graphiques avec des données CSV » montre comment afficher les données d'un fichier CSV sous forme de diagramme à barres en 2D. L'application lit le fichier CSV à l'aide d'un analyseur CSV tiers. Les données sont insérées dans un modèle personnalisé qui hérite de la classe ` QAbstractTableModel`. Une fois les données insérées dans le modèle, la colonne la plus à gauche contient les données d'en-tête verticales, tandis que la ligne supérieure contient les données d'en-tête horizontales.
La bibliothèque tierce sélectionnée ne connaît pas le système de ressources Qt; elle ne peut donc pas charger le fichier CSV à partir du chemin d’accès. Par conséquent, le contenu de la source doit être chargé avant d’être transmis à la bibliothèque. Dans cet exemple, la bibliothèque CSV accepte le fichier sous la forme d’un chemin d’accès, d’un fichier « std::fstream » ou d’un fichier « std::stringstream ». Comme le fichier CSV se trouve dans les ressources Qt, la bibliothèque ne sait pas comment le charger, et QFile ne prend pas en charge std::fstream; la seule option restante est d’utiliser std::stringstream. Le fichier entier peut être lu dans une chaîne via QFile::readAll(), puis cette chaîne est ouverte dans un std::stringstream.
Dans la fenêtre de l’application, une vue de tableau présente les données issues du modèle. À partir de cette vue, l’utilisateur peut sélectionner une sous-section de données qui s’affiche ensuite dans le graphique à barres.
Comme la série de barres ne modifie pas les libellés de l’axe des catégories, la mise à jour de la série n’entraîne pas la mise à jour des libellés de l’axe. Cette gestion est assurée en JavaScript en extrayant les noms des libellés de la colonne la plus à gauche du modèle. Les noms de libellés extraits sont ensuite attribués à la propriété `labels` de l’axe des catégories.
function extractBarSetGategories(first, count) {
let categories = [];
const last = first + count;
for (let i = first; i < last; ++i)
categories.push(tv.model.headerData(i, Qt.Horizontal, Qt.DisplayRole) + " medals");
return categories;
}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 : Créer 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.
Voir également Applications QML.
© 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.