if(!GNpoints.isEmpty()) { if(GNpoints.size()>2) { for(int i = 0; i < GNpoints.size() - 1; i++) { QPointF point0(GNpoints[i].x(),GNpoints[i].y()); QPointF point0c(GNpoints[i+1].x(),GNpoints[i+1].y()); QPen pen(Qt::red); // 定义画笔颜色 QGraphicsLineItem* line = new QGraphicsLineItem(GNpoints[i].x(),GNpoints[i].y(),GNpoints[i+1].x(),GNpoints[i+1].y()); // 创建折线,其起点为(0,0), 终点为(100,100) double x=0.6; int y=static_cast<int>(x);// 强制类型转换 pen.setWidth(y); line->setPen(pen); // 设置画笔颜色 scene->addItem(line); // 将折线添加到场景中 } } }修改为清除QGraphicsLineItem 但是不清除界面上的图形
时间: 2023-11-22 15:55:02 浏览: 48
你可以尝试使用QGraphicsScene的clear()方法来清除场景中的所有图形项,而不影响界面上已经绘制的图形。修改后的代码如下:
```
if(!GNpoints.isEmpty()) {
if(GNpoints.size()>2) {
// 清除场景中的所有图形项
scene->clear();
for(int i = 0; i < GNpoints.size() - 1; i++) {
QPointF point0(GNpoints[i].x(),GNpoints[i].y());
QPointF point0c(GNpoints[i+1].x(),GNpoints[i+1].y());
QPen pen(Qt::red); // 定义画笔颜色
QGraphicsLineItem* line = new QGraphicsLineItem(GNpoints[i].x(),GNpoints[i].y(),GNpoints[i+1].x(),GNpoints[i+1].y()); // 创建折线,其起点为(0,0), 终点为(100,100)
double x=0.6;
int y=static_cast<int>(x);// 强制类型转换
pen.setWidth(y);
line->setPen(pen); // 设置画笔颜色
scene->addItem(line); // 将折线添加到场景中
}
}
}
```
阅读全文