2011-04-20 6 views
1

마우스로 이미지의 일부를 선택하기 위해 크기를 조정할 수있는 선택 도구를 만들고 싶습니다. QT로이 작업을 수행하고 싶습니다. QRubberBand를 사용하여 기본 선택 항목을 만듭니다.QT로 크기 조정 가능한 고무 밴드

다음 단계는 마우스로 크기를 조정할 수 있도록하는 것입니다. &을 클릭하면 모서리를 드래그하여 크기가 변경되고 &을 선택 안에 드래그하면 선택 항목이 이동합니다.

이제 내 생각은 QRubberBand를 서브 클래 싱하고 모든 구석에 큰 점을 칠하고 그 점에서 mouseevents를 수행하기 위해 paintEvent 메서드를 재정의합니다. 하지만 누군가가 이것을하는 더 똑똑한/더 좋은 방법이 있는지 궁금 해서요?

이것에 대한 의견을 듣고 싶습니다. 사전에 감사합니다.

+0

이것을 구현 한 적이 있습니까? 나는 똑같은 일을 할려고합니다. –

+0

프로젝트가 다시 푸시 되었기 때문에 나는 결코 한 적이 없지만 이번 주에 프로젝트를 진행할 것입니다. 너 이거 만들었 니? 만약 그렇다면 어떤 조언? – user458753

+0

나는 거의 일하고있다. 완료되면 링크를 게시합니다 (이번 주말). –

답변

0

나는 이전과 비슷한 것을했습니다. QWidget 대신 QGraphicsView를 사용했기 때문에 개발이 훨씬 쉬워졌습니다. QGraphicsItem을 "고무 밴드"로 사용했습니다. QGraphicsView는 이미 많은 사용자 상호 작용을 처리하므로 QWidget :: mouseMove() 이벤트 등을 다시 구현할 필요가 없었습니다. QGraphicsView 최적화로 인해 성능이 QWidget보다 훨씬 빨라졌습니다.

희망이

0

난 그냥 내 Qt는 이미지와 벡터 뷰어에 대한 임의의 대화 형 오버레이 그래픽에 대한 일반적인 프레임 워크를 구현하는 데 도움이됩니다. 올가미의 올가미 https://github.com/dov/Qviv/tree/Lasso/Lasso을 참조하십시오. scons으로 컴파일 한 다음 testLasso을 실행하여 테스트 할 수 있습니다. 현재이 테스트는 움직일 수있는 반투명 캘리퍼스를 구현하지만 원하는 그래픽으로 쉽게 변경할 수 있습니다. 올가미 하위 디렉토리는 현재 Qviv 프로젝트의 나머지 부분과 완전히 독립적입니다.

관련 문제