2013-06-27 2 views
1

프레임과 (버튼과 라벨 뒤에 배경색을 설정하기 위해) 위젯 계층 구조를 가지고 있고, 직접 레이아웃 요소로 수평 레이아웃을 사용하고 있습니다.QFrame 내에서 QHorizontalLayout 확장하기

Widget hierarchy

그러나, 수평 레이아웃 (Qt는 디자이너의 아래 스크린 샷에서 빨간색 프레임) 프레임 내부의 전체 공간을 차지하지 않습니다. 어떻게해야합니까? "layoutSizeConstraint"속성 변경이 작동하지 않습니다. 라벨은 이미 가로 방향으로 "펼치기"로 설정되어 있지만 크기는 그대로 유지됩니다. 가로 레이아웃을 수동으로 크기를 조정할 수 있지만 자동으로 너비가 채워야합니다.

Layout not expanded

답변

2

귀하의 frame 프레임은 (는 트리에서 해당 아이콘에 표시된 것) 레이아웃이 없습니다. 새 QHBoxLayout을 추가하고 프레임으로 드래그했기 때문입니다. 이 레이아웃을 제거하고 레이블과 버튼을 frame으로 드래그 한 다음 frame의 컨텍스트 메뉴를 열고 "레이아웃"옵션을 선택하고 원하는 레이아웃을 선택하십시오.

+0

이렇게하면 해결책을 찾았습니다. 나는 3 명의 아이들을 물론 레이아웃하고 싶기 때문에 프레임 안에 레이아웃을 유지했다. 하지만 프레임을 마우스 오른쪽 버튼으로 클릭하고 "레이아웃"을 선택한 다음 예를 들어 "수평으로 배치"를 선택해야했습니다. 이렇게하면 * 프레임의 * 속성에서 스크롤 할 때 볼 수있는 * 보이지 않는 * 레이아웃이 프레임 주위에 추가됩니다. 이것은 Qt Designer가 정말 바보입니다. 감사! – AndiDog

+0

사실 2 개의 레이아웃이 있는데 하나는 보이지 않고 다른 하나는 트리에 명시 적으로 표시됩니다. 해가 되진 않지만 완벽하지는 않습니다. 내 조언을 따랐다면 보이지 않는 레이아웃이 하나 있습니다. –

+0

그렇다면 프레임의 부모로 보이지 않는 레이아웃 만있는 경우 프레임에 라벨과 버튼을 어떻게 배치할까요? – AndiDog