2013-05-31 4 views
2

2D 그래픽과 관련하여 Qt example으로 약간의 바이올린을 시도하고 있습니다.QGraphicScene에서 QGraphicItem을 다시 그리기로 이동

기본적으로 작은 다이어그램 편집기입니다. 예를 들어, 사용자가 tracknodes() 함수 은 연결된 노드를 다른 위치로 드래그하면 회선의 끝점을 업데이트하는 데 사용됩니다..

이것은 실제로 발생하지 않습니다. 코드를 살펴본 후에 노드 QGraphicItem을 이동 한 후 이벤트가 호출되어 링크의 렌더링을 업데이트하기 때문에 이벤트가 발생하지 않아서 느낌이 들었습니다.

가 나는 곳과 QGraphicItem의 움직임이 가 슬롯에 신호 (또는 그런 일을) wasDropped 보내기 위해 처리하는 방법 링크를 다시 렌더링 알아 내야 생각. 이게 말이 돼?

저는 Qt/C++에서 일반적으로 매우 익숙합니다. 그래서 이것을 달성하는 방법에 대한 명확한 생각이 없습니다. 누군가 공유 할 수있는 포인터가 있습니까?

답변

2

그는 함수를 호출하여 가상 함수를 호출하는 것처럼 보입니다. ItemChange은 노드가 이동 될 때마다 호출되어야합니다. 다른 경우에도 호출되지만 그는 단지 QGraphicsItem의 움직임을 추적하는 용도로만 사용합니다.

+1

사실 나는 그것을 알아 냈습니다. ** ItemSendsGeometryChanges ** 플래그가 _node_ cpp에 없습니다. 그러나 내가 실제로 묻는 것에 대한 귀하의 대답은 정확합니다. +1 – Joum

+0

@Jorum 오, 죄송합니다. QGraphicsItem에 대해 'ItemSendsGeometryChanges' 플래그를 설정하여 이러한 알림을 가져와야한다는 점을 잊어 버렸습니다. 네가 그걸 붙잡아서 기뻐. – thuga