2016-06-07 5 views
0

위젯의 좌표 시스템이 위젯에 국한된다는 것을 알고 있습니다. 0,0 왼쪽 위.QWidget 프레이밍

위젯에 프레임을 그려야하지만 rect()에 의해 반환 된 QRect를 사용하면 오른쪽과 아래쪽에 액자가 생기지 않습니다.

'frameGeometry()'라는 메소드가 있지만 위젯과 같은 좌표 시스템에 있지 않지만 부모의 co-orindate 시스템에있는 QRect를 리턴합니다.

로컬 좌표계에서 위젯에 대한 프레임 사각형을 가져 오는 방법이 있습니까?

QRect(0, 0, width()-1, height()-1); 

이 할 수있는 적절한 것입니다 :

나는 내가 frameGeometry()를 번역하거나 새로운 사각형을 만들 수있어?

답변

0

위젯은 위젯의 QRect (모든면에서 패딩을 포함하여 위젯이 소비하는 전체 공간을 설명 함)에서 빼기 위해 캔버스에 대한 패딩을 가질 가능성이 가장 높습니다 . 특정 구문에 대한 확실하지.

+0

감사합니다. 이제는 rect() 및 contentsMargins()와 동일한 사각형을 반환하는 contentsRect() 메서드가 있습니다. 반환되는 여백은 모두 0입니다. – SPlatten

+0

위젯에 대한 QRect를 읽을 때, BottomRight 포인트. 좌표가 위젯의 높이와 너비보다 작습니까? 또한 VCL 위젯의 문제점을 기억하고 있습니다 ... 위젯 자체보다 작은 경계 사각형을 가진 ContentPane이 있습니다. 위젯에는 이와 비슷한 것이 있습니까? 즉, 패널 위젯입니까? 당신이 어떤 종류의 QWidget을 쓰는지 모르겠으므로 스스로 찾아 볼 수는 없습니다. 내 것은 QPushButton에 해당하는 VCL 요소였습니다. – starturtle

+0

오른쪽 하단에 오른쪽으로 1 픽셀 삽입되어 있습니다. – SPlatten