2013-07-19 4 views
3

나는 꽤 큰 (세로) 메인 위젯을 표시해야하는 프로젝트에서 일하고있다. 초기 GUI 버전에서는 QMainWindow의 중앙 위젯으로 추가되었으므로 작은 화면 해상도에서는 위젯의 하단 컨트롤에 도달 할 수 없습니다. 이 문제를 해결하기 위해 메인 위젯 주위에 QScrollArea를 래핑했습니다.하지만 지금은 메인 윈도우가 상대적으로 작아도 항상 작습니다.QScrollArea를 사용하여 원하는 크기의 QMainWindow를 설정하는 방법은 무엇입니까?

메인 윈도우 (수직) 크기가 화면 해상도에 비해 너무 커지면 모든 내용을 표시 할 수있을만큼 커야하는 항목은 무엇입니까? 또한 나는 그것이 뻗어 있기를 원하지 않기 때문에 항상 전체 수직 화면 해상도를 사용하는 것은 선택 사항이 아닙니다. 이상적으로 크기는 내용에 필요한 크기 (스크롤 영역 없음)로 고정되어야하며 필요한 경우에만 더 작아야합니다.

sizeHint 메서드를 재정의하면 Window가 약간 확대되고 최소 높이를 설정하면 일부 컨트롤이 작은 해상도에서 평가할 수없는 부분으로 되돌아갑니다.

나는 QT를 처음 접했기 때문에 해결책을 찾지 못하는 대부분의 솔루션은 윈도우 내부의 구성 요소 크기를 조정하고 창 자체는 고려하지 않기 때문에 실제로 아이디어가 없습니다.

답변

-1

기본적으로 QScrollArea는 내용에 맞게 확장을 시도하지 않습니다. 이 작업을 수행하려면 QScrollArea의 하위 위젯 크기를 반환하려면 QScrollArea의 sizeHint()를 다시 구현해야합니다.

MainWindow의 sizeHint를 다시 구현하려는 것처럼 들리겠습니까? 최상위 윈도우의 sizeHint를 다시 구현하면 sizeHint가 레이아웃 내부의 위젯과 함께 사용하도록 설계된 것처럼 효과가 없습니다.