2014-08-29 73 views
-1

我有兩個類:pointmainwindow。 我聲明一點類的指針mainwindow.h爲:Qt向量大小保持不變

point *item; 

我mainwindow.cpp創建點類的一個對象:

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

+0

誰,何時以及如何向量'point_vector'更改? – vahancho 2014-08-29 10:19:57

+0

@vahancho我編輯了我的問題。請參見。 – 2014-08-29 10:26:38

+1

你應該在問題本身中提供一個簡短的完整例子。外部鏈接不好,或者如果您使用的是adblock,那麼它們就是不會加載的令人討厭的頁面。 – 2014-08-29 10:50:37

回答

0

您的代碼傳播出去太多了,你應該嘗試創建適當的類...

據我所看到的,「point_vector」說被推回來的項目是一個本地變量聲明/定義在point.cpp

你沒有發佈的point.h文件,但我猜測它有point_vector定義爲t他指出......但你沒有在cpp中使用point_vector成員變量,你正在使用本地聲明的變量

如果像你的問題上的評論所說,你發佈了更多完整的代碼部分。