```cpp
#include <QApplication>
#include <QtCharts/QChartView>

#include <QtCharts/QLineSeries>
#include <QtSerialPort/QSerialPort>
#include <QtCore/QDebug>
QT_CHARTS_USE_NAMESPACE
int main(int argc, char argv[])
{
QApplication a(argc, argv);
// 创建串口工具
QSerialPort serial;
serial.setPortName("COM1"); // 设置串口号
serial.setBaudRate(QSerialPort::Baud9600); // 设置波特率
if (!serial.open(QIODevice::ReadOnly)) {
qDebug() << "无法打开串口";
return 1;
}
// 创建曲线和图表视图
QLineSeries series = new QLineSeries();
QChart chart = new QChart();
chart->addSeries(series);
chart->createDefaultAxes();
chart->setTitle("实时曲线");
chart->legend()->hide();
QChartView chartView = new QChartView(chart);
chartView->setRenderHint(QPainter::Antialiasing);
// 创建定时器,用于定时更新曲线
QTimer timer;
QObject::connect(&timer, &QTimer::timeout, [&]() {
if (serial.bytesAvailable()) {
QByteArray data = serial.readAll();
int value = static_cast<unsigned char>(data.at(0));
series->append(series->count(), value);
}
});
timer.start(100); // 每100毫秒更新一次曲线
// 显示窗口
chartView->resize(800, 600);
chartView->show();
return a.exec();
}
```
在这个示例中,我们创建了一个`QSerialPort`工具来建立串口连接,并通过串口吸收数据。然后,我们利用`QLineSeries`和`QChart`来创建曲线和图表视图。定时器被用来定时读取串口数据,并将数据添加到曲线上。末了,我们利用`QChartView`来显示图表。
请把稳,在运行此示例之前,请确保已精确设置串口号和波特率,并根据您的须要进行相应的变动。