현재 여러 페이지가있는 QStackedWidget
으로 구성된 응용 프로그램을 만들고 있습니다. 페이지 자체가 디자이너에 추가되었습니다. 나는 무엇 (코드) 수행 할 수 있습니다StackedWidget 페이지에 QScrollArea를 동적으로 추가하고 위젯을 추가하는 방법은 무엇입니까?
- 를 페이지
- 에 QVBoxLayout를 추가 페이지이 아주 잘 작동
위해에
QScrollArea
을 추가하는 것입니다. //The header file:
QVBoxLayout *valuesLayout;
//The corresponding .cpp file
valuesLayout = new QVBoxLayout();
valuesPage->setLayout(valuesLayout); //valuesPage is my QStackedWidget page
for (int j=0; j<100; j++)
{
valuesLayout->addWidget(new PaIndicator(0, "This is a test", 0)); // my custom widgets
}
내가 변경해야 할 것입니다 방법/내 위젯이 QScrollArea에 표시되도록 위의 코드를 확장 : "있는 그대로"
그래서 여기가 상황에 내 코드?
업데이트 : 이
내 현재 코드가 정확히 SHF의 대답에 주어진 라인과 같습니다 :이와 결국 아래에 언급 된 변경 사항을 적용 후. 나는 점점 더 가까워지고 있다고 느끼지만, 여전히 뭔가 잘못된 것 같습니다.
그랬습니다. 한 가지 중요한 점은 위의 솔루션을 사용하면 추가 된 (내부) 위젯을 레이아웃에 추가 할 때 (일반적으로 고정 높이, 수평으로 확장)와 같이 확장하지 않는다는 것입니다. 이 동작을 사용하려면 다음과 같이 설정해야합니다. scrollArea-> setWidgetResizable (true); – Robert
@ 로버트 : 누락 된 것은'layout() -> setSizeConstraint (QLayout :: SetMinAndMaxSize)'호출입니다. 하나는'scrollArea-> setWidgetResizable'을 호출 할 필요가 없다. 전자는 명확하게 의도 된 것을 표현할 수 있습니다. 위젯은 내용에 맞게 필요한만큼 커야합니다. –