QCPItemPolygon最新版本qcustomplot没有
时间: 2023-12-07 11:06:14 浏览: 295
qcustomplot
如果您的版本没有`QCPItemPolygon`,您可以使用`QCPItemLine`和`QCPItemCurve`来绘制下三角形。以下是代码示例:
```cpp
// 获取频谱图最大值的索引
int indexMax = ui->customPlot->graph(0)->data()->indexOfMaxValue();
// 获取频谱图最大值的坐标
QCPData maxData = ui->customPlot->graph(0)->data()->at(indexMax);
double xMax = maxData.key;
double yMax = maxData.value;
// 创建下三角形图标
QCPItemLine *line1 = new QCPItemLine(ui->customPlot);
line1->start->setCoords(xMax-10, yMax-10);
line1->end->setCoords(xMax+10, yMax-10);
line1->setPen(QPen(Qt::red, 2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
QCPItemLine *line2 = new QCPItemLine(ui->customPlot);
line2->start->setCoords(xMax-10, yMax-10);
line2->end->setCoords(xMax, yMax);
line2->setPen(QPen(Qt::red, 2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
QCPItemLine *line3 = new QCPItemLine(ui->customPlot);
line3->start->setCoords(xMax, yMax);
line3->end->setCoords(xMax+10, yMax-10);
line3->setPen(QPen(Qt::red, 2, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin));
// 更新图形
ui->customPlot->replot();
```
在上述代码中,我们首先通过`indexOfMaxValue()`函数获取频谱图最大值的索引,然后通过`at()`函数获取该点的坐标。接着,我们创建了三条线段,分别表示三角形的三条边,并设置其颜色和宽度。最后,我们通过`setCoords()`函数设置图标的位置和大小,然后调用`replot()`函数更新图形。
这里我们使用了`QCPItemLine`和`QCPItemCurve`来绘制下三角形,通过设置线段的起点和终点坐标,来绘制三角形的三边。
阅读全文