2011-11-19 8 views
0

크기를 조정할 수 있도록 사각형 핸들을 작성하려고했습니다. 작품의 그것은 종류 : 핸들이 다시 그려지지 않습니다?

http://programmingexamples.net/wiki/Qt/Utilities/HandleItem#HandleItem.cpp

하지만 핸들이 조금 주위에 드래그되면, 그들의 대부분은 윤곽을 솔리드 채우기로 설정

. 핸들이 있던 곳에 주변에 이상한 유물이 남아 있습니다. 결국 일부 핸들이 함께 작동하지 않습니다. 누구든지 내가 보는 이들 중 어떤 것을 설명 할 수 있습니까? 이 방법이 합리적인 방법입니까? boundingRect()를 구현해야하는 이유는 아직도 확실하지 않습니다. 객체가 상태 변수로만 위치와 크기를 유지해야하는 것처럼 보입니다.

모든 의견을 보내 주시면 감사하겠습니다.

답변

2

항목의 boundingRect() 외부에서 핸들을 그리기 때문에 문제가 발생할 가능성이 높습니다.

boundingRect()은 기본 클래스가 알 수있는 바깥에있을 수있는 paint() 함수에서 흥미로운 것을 수행하기 때문에 많은 경우에 구현해야합니다.

이런 종류의 좋은 디버깅 팁은 실제로 paint() 함수에서 boundingRect()를 그리고 시각적 사각형에 항목이 적절하게 포함되어 있는지 확인하는 것입니다. 예를 들면 : 당신이 당신의 항목 중 하나가 그 사각형의 외부에 그려지는 것을 볼 경우 QGraphicsScene 장면의 부분이 필요로하는 결정하기 위해 그 정확성에 의존로

painter->setPen(Qt::red) 
painter->drawRect(boundingRect()); 

은, 그것은 그림 아티팩트의 원인이됩니다 다시 칠하기.

+0

크리스. 제대로 작동하는 핸들이 있습니다. 왼쪽 핸들을 사용하여 사각형을 접을 때 오른쪽 가장자리가 움직입니다. 이는 내가 원하는 (분명히) 것이 아닙니다. 그게 어디가 잘못 될지 단서? 이 일에 흥미로운 사람이라면 github 사용자 명을 보내주십시오 : github.com/daviddoria/QtHandleItem –

관련 문제