Qt를

2014-10-02 5 views
4

나는 다음과 같이 QPainterPath 둘 사이에 포인트를 사용하여 선을 그리는 오전에 라인의 RECT 경계 결정하십시오 :Qt를

start_p.x() < end_p.x() 

start_p.y() < end_p.y() 

두 점 (start_p 및 end_p)의 좌표 사이의 관계에 관계없이 선이 올바르게 그려지도록 경계 선을 정의해야하는 방법은 무엇입니까?

답변

6

당신은 당신의 사각형 정상화 시도 할 수 있습니다 :

QRectF Line::boundingRect() const 
{ 
    return QRectF(start_p.x(), start_p.y(), end_p.x(), end_p.y()).normalized(); 
} 
0

QPainterPath의 경계 사각형을 반환하는 QPainterPath::boundingRect을 사용할 수 있습니다. 당신은 클래스의 구성원으로 화가 경로를 유지하고 boundingRect 기능에 액세스 할 수 있습니다

QRectF Line::boundingRect() const 
{ 
    return line.boundingRect(); 
} 
2

당신은 수 중 하나 - 끝의 시작 포인트보다 큰 조건에 대한

  • 확인 rect를 적절히 설정하십시오.
  • QPainterPath의 경계 사각형을 반환하십시오.
  • 휠을 다시 작성하는 대신 QGraphicsLineItem을 사용하십시오.

그냥 줄을 원한다면 QGraphicsLineItem이 가장 좋은 방법 일 것 같습니다.