我从上周就开始做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()
。