此代码从鼠标单击中获取坐标并创建一个新顶点;
void DrawingWidget::mousePressEvent(QMouseEvent *event){
if(getCurrentState()==ADD_VERTEX){
x=event->x();
y=event->y();
Vertex p1 {&x,&y};
m_mainWindow->addVertex(p1);
update();
}
}
这是顶点类代码:
class Vertex {
public:
float *x = 0;
float *y = 0;
Vertex() = default;
Vertex(float *nx, float *ny);
};
所有 Verces 都在列表中:
QList<Vector2> vertexList;
并添加顶点(顶点顶点):
addVertex(Vertex vertex){
vertexList << vertex;
}
基本上第一个顶点添加工作完美,但是当我尝试添加第二个顶点(使用给定的方法)时,第一个顶点坐标被改变了。
注意!Vertex 类的坐标是有意的指针,因为通过使用另一种方法我正在改变它们的坐标。
我错过了什么?