我有两个课程:point
和mainwindow
。
我在mainwindow.h中将point类的指针声明为:
point *item;
我在mainwindow.cpp中创建了一个point类对象:
void MainWindow::drawPoint(){
item = new point;
scene->addItem(item);
}
此功能可以在qgraphicsscene
中绘制点。
有一个向量可以在点类中存储QPointF
个值。存储类是向量的类型。
QVector<storage> point_vector;
set_point()
在存储类中定义,用于设置点p1的值。
storage store_point;
store_point.set_point(p1);
point_vector.push_back(store_point);
在mainwindow.cpp中迭代向量,
for(it = item->point_vector.begin(); it != item->point_vector.end(); it++)
{
qDebug() << "size" << item->point_vector.size() << "\n";
}
即使我在场景中创建了多个点,矢量的大小也始终为1。
我认为这可能会发生,因为每次调用函数drawPoint()
时,点类的前一个对象都会被覆盖。
我无法弄清楚如何解决此问题。任何帮助将不胜感激。
相关代码
答案 0 :(得分:0)
你的代码分散太多,你应该尝试创建合适的类......
据我所知,被推回项目的“point_vector”是在point.cpp中声明/定义的局部变量
你没有发布point.h文件,但是我猜它已经将point_vector定义为类点的一部分......但是你没有在cpp中使用point_vector成员变量,你正在使用本地声明的一个
与您的问题的评论一样,您更容易看到是否发布了更完整的代码部分。