Qt矢量大小保持不变

时间:2014-08-29 10:16:31

标签: qt object vector qgraphicsscene

我有两个课程:pointmainwindow。 我在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()时,点类的前一个对象都会被覆盖。

我无法弄清楚如何解决此问题。任何帮助将不胜感激。

相关代码

http://www.paste.org/74408

1 个答案:

答案 0 :(得分:0)

你的代码分散太多,你应该尝试创建合适的类......

据我所知,被推回项目的“point_vector”是在point.cpp中声明/定义的局部变量

你没有发布point.h文件,但是我猜它已经将point_vector定义为类点的一部分......但是你没有在cpp中使用point_vector成员变量,你正在使用本地声明的一个

与您的问题的评论一样,您更容易看到是否发布了更完整的代码部分。