qt绘制温度湿度折线图完整代码
时间: 2023-07-27 16:08:45 浏览: 131
Qt曲线图和折线图.rar
以下是一个基于Qt的简单温度湿度折线图的完整代码,你可以根据需要进行修改和调整:
```cpp
#include <QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QDateTimeAxis>
#include <QtCore/QDateTime>
#include <QtCore/QDebug>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
// 创建折线图数据
QLineSeries *temperatureSeries = new QLineSeries();
temperatureSeries->setName("Temperature");
temperatureSeries->append(QDateTime::currentDateTime().toMSecsSinceEpoch(), 20);
temperatureSeries->append(QDateTime::currentDateTime().addSecs(10).toMSecsSinceEpoch(), 22);
temperatureSeries->append(QDateTime::currentDateTime().addSecs(20).toMSecsSinceEpoch(), 21);
temperatureSeries->append(QDateTime::currentDateTime().addSecs(30).toMSecsSinceEpoch(), 23);
temperatureSeries->append(QDateTime::currentDateTime().addSecs(40).toMSecsSinceEpoch(), 24);
QLineSeries *humiditySeries = new QLineSeries();
humiditySeries->setName("Humidity");
humiditySeries->append(QDateTime::currentDateTime().toMSecsSinceEpoch(), 50);
humiditySeries->append(QDateTime::currentDateTime().addSecs(10).toMSecsSinceEpoch(), 55);
humiditySeries->append(QDateTime::currentDateTime().addSecs(20).toMSecsSinceEpoch(), 51);
humiditySeries->append(QDateTime::currentDateTime().addSecs(30).toMSecsSinceEpoch(), 54);
humiditySeries->append(QDateTime::currentDateTime().addSecs(40).toMSecsSinceEpoch(), 52);
// 创建折线图
QChart *chart = new QChart();
chart->addSeries(temperatureSeries);
chart->addSeries(humiditySeries);
// 创建X轴
QDateTimeAxis *axisX = new QDateTimeAxis();
axisX->setTickCount(5);
axisX->setFormat("hh:mm:ss");
axisX->setTitleText("Time");
chart->addAxis(axisX, Qt::AlignBottom);
temperatureSeries->attachAxis(axisX);
humiditySeries->attachAxis(axisX);
// 创建Y轴
QValueAxis *axisY = new QValueAxis();
axisY->setLabelFormat("%d");
axisY->setTitleText("Value");
chart->addAxis(axisY, Qt::AlignLeft);
temperatureSeries->attachAxis(axisY);
humiditySeries->attachAxis(axisY);
// 创建折线图视图
QChartView *chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
// 显示折线图视图
chartView->show();
return a.exec();
}
```
在这个例子中,我们使用 `QLineSeries` 来创建温度和湿度的折线图数据。然后,我们创建了一个 `QChart` 来将折线图数据添加到其中。接下来,我们创建了一个 `QDateTimeAxis` 和一个 `QValueAxis` 来表示 X 轴和 Y 轴,并将它们添加到折线图上。
最后,我们将折线图添加到 `QChartView` 中,并将 `QChartView` 显示出来。你可以根据需要修改代码,如添加更多的数据点或调整轴的标签和标题。
阅读全文