를 제거 할 때 I는 (hide()
, setVisible()
과 같은 다양한 방법을 통해 QDialog
) 대화의 생성자에서 제거 될 수있는 중첩 QGroupBox
으로 QDialog
이있다. 불행히도 제거하면 대화 상자의 크기가 그대로 유지됩니다. 그것에 대한 재미있는 점은 주 QGroupBox
(중첩 된 QGroupBox
)이 축소되지만 나머지 창은 줄어들지 않는다는 것입니다. 결과적으로 주 QGroupBox
주위에는 큰 공백이 있습니다.인 QDialog 압축 요소는
이 나는 시도했다 :
QMetaObject::invokeMethod()
를 통해 ctor에
에서 QDialog::resize()
및를 호출
- 30 (제거 된
QGroupBox
의 크기)에 의해 높이를 줄일 수 있지만, 아무것도하지 않습니다. QDialog::adjustSize()
(또한 ctor와QMetaObject::invokeMethod()
)을 호출하지만 두 가지 크기가 모두 커집니다 (크고 미친 것처럼!).QDialog
의 "수직 정책"을 "기본 설정"(의미가 무엇이든)에서 "최소"로 변경하지만 아무 것도 수행하지 않습니다.
QDialog
에는 그리드 레이아웃이 있습니다.
편집 : verticalSpacers
위와 아래에 주 QGroupBox
이있는 것으로 나타났습니다. 정책과 크기에 대한 힌트를 설정해도 차이는 없습니다. adjustSize()
으로 전화를 걸면 전체 창은 여전히 커집니다. 그것들을 제거하면 adjustSize()
은 높이를 얻지 만 너비는 여전히 너무 큽니다. 그런 다음 adjustSize()
을 호출하지 않고 메인 QGroupBox
을 동일한 크기로 유지하고 일부 자식 제거로 인해 축소하지 않습니다.
저는 우분투 16.04에서 Qt 4.8을 사용하고 있습니다.