2013-05-01 4 views
0

다른 함수에서 QGraphicsView에있는 장면에 타원을 그립니다. 타원과 같은 XY를 클릭했는지 확인하는 클릭 이벤트가 있습니다. 그런 다음지도를 반복하여 그 객체가 반환되는 경우 해당 XY가 특정 객체에 할당되었는지 확인합니다.타원에 데이터를 추가하는 방법 QT

그러나 타원을 클릭 할 때 데이터가 바인딩되는 방식을 찾고있었습니다. 데이터를 찾기 위해 xy 등을 검색 할 필요가 없다.

나는 아이템을 데이터에 할당 할 수있는 함수 setdata를 찾았지만, 필자의 함수는 데이터를 그리기 만하면 데이터를 추출하고 데이터를 추출하는 방법을 모른다. 티 그것 때문에 나는 어떤 느낌이 들었다. 왜냐하면 나는 장면이고 데이터는 항목에 묶여 있어야하지만, 그 일이 어떻게 이루어 졌는지 그리고 문서 검색은 나에게 어떤 대답도주지 않았다.

내 기능

void GUI::paintDot(double x, double y, double Id) 
{ 
    // Decalre a QPen for Painting dots 
    QPen pen; 

    // set the pen colour 
    pen.setColor(Qt::white); 

    if(x < m_height && y < m_width) 
    { 
     // Add ellipse at the x y position passed in 
     scene2->addEllipse(x, y, 1.5, 1.5, pen, QBrush(Qt::SolidPattern))->setData(0, Id); 
    } 
} 

0 인 단지 임의의 키 실제로 키 값을 나타냅니다 뭔가를 변경해야합니다 값,하지만 당신은 표시되지 않는 것

답변

0

의 좋은 예를 위해서를 heres 코드 데이터를 다시 가져 오려고하는 경우 (예 : 마우스 누르기 등을 캐시합니다). 그래서 문제가 실제로이지만만큼 간단해야 어떤 긍정적 아니에요 :

QVariant v = ellipseObject->data(0); 

그리고 당신은 귀하의 경우에는, 당신은 넣어 당신이 넣어 데이터 유형에 따라 그에서 당신의 가치를 추출합니다. 이중에서 :

double d = v.toDouble(); 

(분명히이 두 라인은 변수 v 할 필요없이 결합 될 수있다)
관련 문제