完整代码如下:
主要注意的是Qt中的QHBoxLayout等Qt类对象在被引用的情况下是可以使用局部变量的,典型的如setLayout这类型的函数接口,都可以使用局部变量,而不是new对象。
另外一点就是qcustomplot中的replot就相当于Qt中的update,由于qcustomplot是属于绘图类的接口库,所以,基本是只要对图表有操作,就需要使用replot更新。
QHBoxLayout *hly = new QHBoxLayout;
ui->widget->setLayout(hly);
m_customPlot = new QCustomPlot;
hly->addWidget(m_customPlot);
// 创建一条垂直于 x 轴的直线,从 (x1, y1) 到 (x2, y2)
QCPItemStraightLine *line = new QCPItemStraightLine(m_customPlot);
line->point1->setCoords(20, 140); // 设置起始点坐标
line->point2->setCoords(80, 160);
// 添加曲线数据
QVector<double> xData, yData;
for (int i = 0; i <= 100; ++i)
{
xData.push_back(i);
}
for (int i = 100; i <=