QGraphicsPolygonItem -如何改变点的坐标



我从上周就开始做QT了,对图形管理还是个新手。

我有一个代表4压力图形的多边形:我如何用新的位置刷新多边形?

double deltaPos_A = vshp->cpu_v.paramCpuToVisu.liftData[0].pos - vshp->cpu_v.paramCpuToVisu.lift.hMin;
double deltaPos_B = vshp->cpu_v.paramCpuToVisu.liftData[1].pos - vshp->cpu_v.paramCpuToVisu.lift.hMin;
double deltaPos_C = vshp->cpu_v.paramCpuToVisu.liftData[2].pos - vshp->cpu_v.paramCpuToVisu.lift.hMin;
double deltaPos_D = vshp->cpu_v.paramCpuToVisu.liftData[3].pos - vshp->cpu_v.paramCpuToVisu.lift.hMin;
double kPos_X = 180 / (vshp->cpu_v.paramCpuToVisu.lift.hMax - vshp->cpu_v.paramCpuToVisu.lift.hMin);
double kPos_Y = 295 / (vshp->cpu_v.paramCpuToVisu.lift.hMax - vshp->cpu_v.paramCpuToVisu.lift.hMin);
graphic_Press->polygon()[0].setX(-deltaPos_A*kPos_X);
graphic_Press->polygon()[0].setY(-deltaPos_A*kPos_Y);
graphic_Press->polygon()[1].setX(deltaPos_B*kPos_X);
graphic_Press->polygon()[1].setY(-deltaPos_B*kPos_Y);
graphic_Press->polygon()[2].setX(deltaPos_C*kPos_X);
graphic_Press->polygon()[2].setY(deltaPos_C*kPos_Y);
graphic_Press->polygon()[3].setX(-deltaPos_D*kPos_X);
graphic_Press->polygon()[3].setY(deltaPos_D*kPos_Y);
graphic_Press->polygon()[4].setX(-deltaPos_A*kPos_X);
graphic_Press->polygon()[4].setY(-deltaPos_A*kPos_Y);

下面是声明("graphic_Press_Polygon"为5个点的QPolygonF):

QGraphicsPolygonItem* graphic_Press;
graphic_Press = mSceneMSPE->addPolygon(graphic_Press_Polygon,greenPen,trasparentBrush);

新多边形不会刷新到场景中。我该怎么办?

QGraphicsPolygonItem设置一个新的多边形,你需要调用setPolygon()。

注意,调用polygon会得到QGraphicsPolygonItem使用的多边形的副本。修改此副本对QGraphicsPolygonItem没有任何影响。修改后需要调用setPolygon()

最新更新