2014-08-29 2 views
-1

두 클래스가 있습니다 : pointmainwindow입니다. 내가 mainwindow.cpp에 포인트 클래스의 객체를 생성Qt 벡터 크기는 동일합니다.

point *item; 

:

void MainWindow::drawPoint(){ 
    item = new point; 
    scene->addItem(item); 
} 

이 기능은 qgraphicsscene에서 점의 그림을 가능으로 나는 mainwindow.h에 포인트 클래스의 포인터를 선언했다.

포인트 클래스에 QPointF 값을 저장하는 벡터가 있습니다. 저장소 클래스는 벡터 유형입니다.

QVector<storage> point_vector; 

set_point()은 포인트 p1의 값을 설정하는 저장 클래스에 정의됩니다. mainwindow.cpp의 벡터를 반복에

storage store_point; 
store_point.set_point(p1); 
point_vector.push_back(store_point); 

, 나는이 장면에서 여러 지점을 만들 수 있지만

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

+0

@vahancho 내 질문을 편집했습니다. 참조하십시오. –

+1

질문 자체에 간단한 예를 넣어야합니다. 외부 링크가 좋지 않거나 adblock을 사용하는 경우로드되지 않는 불쾌한 페이지로 연결됩니다. –

답변

0

, 당신은 적절한 클래스를 만드는 시도해야을 ... 지금까지 내가는 "point_vector"를 볼 수

그 항목이 지역 변수에 선언/정의 된 point.cpp

당신은 point.h 파일을 게시하지 않았지만 point_vector가 t의 일부로 정의되어 있다고 추측하고 있습니다. 그는 클래스 포인트 ...하지만 cpp에서 point_vector 멤버 변수를 사용하지 않고 로컬 선언 된 변수를 사용하고 있습니다

질문에 대한 의견과 같이 더 많이 게시한다면 쉽게 볼 수 있습니다. 코드의 전체 부분.