2012-09-02 3 views
1

나는 무엇보다도 컨트롤 플로우 그래프와 같은 약간의 항목 들간에 연결을 생성해야하는 QGraphicsView 유래 위젯을 생성하고 있습니다. 그러나 나는 '그릴'나는 두 가지 접근 시도했습니다드래그가 발생하는 동안 QGraphicsItem 업데이트하기

연결하는 방법 구현하는 데 문제가 있어요 : 소스 객체의 mouseMoveEvent(..)이 발사 될 때 QGraphicsLineItem 유래 객체를 생성

  1. 를, 각과를 업데이트 후속 이동. 선이 그려지고 성공적으로 업데이트되지만 궁극적으로 이것은 마우스를 움직이면 마우스가 이벤트 이동을 처리하기 만하므로 다른 객체의 hoverEnterEvent (..)/hoverMoveEvent (..)/hoverMoveEvent 기타 메서드가 호출되지 않습니다 (연결을 완료하는 데 필요합니다).
  2. 두 객체 간의 연결을 생성하기 위해 mouseMoveEvent (..)에 QDrag 인스턴스를 생성하면 두 객체가 일단 연결을 끊을 수 있지만 궁극적으로 QDrag::exec() 호출은 다른 객체에 대한 수단을 제공하지 않기 때문에 작동하지 않습니다 마우스가 움직이는 것을 통보 - 그리기 연결을 업데이트 할 수 없습니다.

정말 완벽한 두 세계에서 QDrag::exec() 호출은 다른 종류의 마우스 이동 알림을 허용하므로 연결을 나타내는 개체를 업데이트 할 수 있습니다. 아무도 제안이 있습니까?

이와 유사합니다. question.

+0

그것은 아마 당신이 원하는,하지만 Qt는의도 장면의 예를 거기에 정확히하지 않습니다 -

(http://www.projexsoftware.com/software/orbiter가 어떻게 생겼는지의 예는 인공 위성 응용 프로그램에 테이블 뷰입니다) qt-project.org/doc/qt-4.8/graphicsview-diagramscene.html –

답변

1

나는 이것을하는 오픈 소스 위젯을 가지고 있는데, 그것은 PyQt를위한 것이지만, 당신이 찾고있는 것에 도움이 될 수있다.

당신은 http://dev.projexsoftware.com/projects/projexui

당신이 찾고있는 코드에서 projexui 프레임 워크에서 찾을 수 있습니다 특별히 projexui/위젯/xnodewidget 궁극적으로

, 내가 사용하고있는 마우스를 눌러 이벤트에있는 XNodeWidget 클래스입니다 장면을 통해 연결을 시작하고 이벤트를 무시합니다 (트리거 - 제어 프레스 또는 핫스팟 영역 등의 일종 기준).

희망이 있습니다! HTTP : //

+0

고마워요, 그게 내가 찾고있는 것입니다! – cmannett85

관련 문제