2014-01-16 2 views
0

여기 내 문제가있다. 나는 충고를 원한다. 그것은 나에게 도움이 될 것이다.클릭하여 항목의 id 값을 얻는 방법

플롯에 두 개의 항목 (예 : 두 개의 svg 항목)을 추가하고 싶습니다. 첫 번째 항목은 ID1이고 두 번째 항목은 ID2입니다.

첫 번째 svg 항목을 클릭하면 신호가 방출됩니다. 마찬가지로 두 번째 svg 항목을 클릭하면 다른 신호가 방출됩니다. 하지만 항목 좌표를 사용하고 싶지 않습니다.

내 목표는 이것입니다. 항목을 클릭하면 해당 ID가 나에게 표시되어야합니다. ** 그러나 항목 좌표를 사용하고 싶지 않습니다. 나는 그것을 알아낼 수 없다. 나에게 조언을 해줘.

감사합니다.

+0

어떻게 svg 개체를 나타 냅니까? 신호는 어떻게 연결되어 있습니까? – prajmus

답변

1

QwtPlotItem은 페인트 이벤트 만 처리하기 때문에 좌표를 사용하지 않고이 작업을 수행 할 방법이 없습니다. Qwt는 마우스 이벤트를 항목으로 전달하지 않으므로 수동으로이 동작을 구현해야합니다.

  • 플롯의 canvas()에 이벤트 필터를 설치하고 마우스 이벤트를 가로 채십시오.
  • 마우스 좌표를 x 축과 y 축에 해당하는 값으로 변환하려면 QwtPlot::invTransform을 사용하십시오.
  • QwtPlot::itemList을 반복하고 각 항목의 QwtPlotItem::boundingRect에 클릭 지점이 포함되어 있는지 확인하십시오.
+0

답변 해 주셔서 감사합니다. 현재 귀하의 답변과 동일한 기술을 사용하고 있습니다. XML 파일의 datas와 관련하여 해당 항목을 그리는 중입니다. 좌표가 무작위로 바뀌는 것을 의미합니다. 그래서 나는 좌표없이 그려야한다고 생각합니다. 그리고이 시점에서 내 뇌가 멈 춥니 다. – alperyazir

관련 문제