Graphiques linéaires avec axes de date et d'heure
Remarque : ceci fait partie de l'exemple « Galerie de graphiques avec widgets ».

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.
Création de graphiques linéaires
Pour créer un graphique linéaire, une instance de QLineSeries est nécessaire. Créons-en une.
auto series = new QLineSeries;Sur les graphiques, nous allons illustrer l’évolution du nombre de taches solaires au fil du temps. Les données (provenant du Space Weather Prediction Center) sont lues à partir d’un fichier texte.
Dans l'extrait de code ci-dessous, remarquez comment la méthode ` QDateTime::toMSecsSinceEpoch ` est utilisée pour convertir l'objet ` QDateTime ` en un nombre pouvant être transmis à la méthode `append` de `QLineSeries`.
// data from http://www.swpc.noaa.gov/ftpdir/weekly/RecentIndices.txt
// http://www.swpc.noaa.gov/ftpdir/weekly/README
// http://www.weather.gov/disclaimer
QFile sunSpots(":sun_spots");
if (!sunSpots.open(QIODevice::ReadOnly | QIODevice::Text)) {
m_loadError = QStringLiteral("Failed to load '%1' file.").arg(sunSpots.fileName());
return false;
}
QTextStream stream(&sunSpots);
while (!stream.atEnd()) {
QString line = stream.readLine();
if (line.startsWith("#") || line.startsWith(":"))
continue;
QStringList values = line.split(QLatin1Char(' '), Qt::SkipEmptyParts);
QDateTime momentInTime;
momentInTime.setDate(QDate(values[0].toInt(), values[1].toInt() , 15));
series->append(momentInTime.toMSecsSinceEpoch(), values[2].toDouble());
}
sunSpots.close();Pour afficher les données sur le graphique, nous avons besoin d'une instance de QChart. Nous y ajoutons la série, masquons la légende, créons les axes par défaut et définissons le titre du graphique.
auto chart = new QChart;
chart->addSeries(series);
chart->legend()->hide();
chart->setTitle("Sunspots count (by Space Weather Prediction Center)");Comme nous utilisons QLineSeries, l’appel à createDefaultAxes créera des QValueAxis à la fois pour l’axe X et l’axe Y. Pour utiliser QDateTimeAxis, nous devons le définir manuellement dans le graphique. Tout d’abord, l’instance de QDateTimeAxis est créée, puis le nombre de graduations à afficher est défini. Le nombre de taches solaires est fourni sous forme de moyenne mensuelle. Nous n’avons donc pas besoin que les étiquettes des axes contiennent des informations sur l’heure et le jour. Pour ce faire, nous définissons un format d’étiquette personnalisé. Veuillez vous reporter à la documentation de la méthode QDateTime::toString() pour en savoir plus sur les options de format disponibles.
auto axisX = new QDateTimeAxis;
axisX->setTickCount(10);
axisX->setFormat("MMM yyyy");
axisX->setTitleText("Date");
chart->addAxis(axisX, Qt::AlignBottom);
series->attachAxis(axisX);
auto axisY = new QValueAxis;
axisY->setLabelFormat("%i");
axisY->setTitleText("Sunspots count");
chart->addAxis(axisY, Qt::AlignLeft);
series->attachAxis(axisY);Nous créons ensuite un objet `QChartView` avec `QChart` comme paramètre. De cette manière, nous n’avons pas besoin de créer nous-mêmes la scène ` QGraphicsView `. Nous activons également l’anticrénelage pour améliorer l’aspect des lignes affichées.
createDefaultChartView(chart);Le graphique est prêt à être affiché.
© 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.