제발 도와주세요. Qt 프로젝트에 고전적인 메인 윈도우가 있는데, 이것을 SAME 부품 - 위젯으로 나누고 싶습니다. 첫 번째 부분에는 하나의 위젯이 있어야하고 다른 부분은 비어 있어야합니다. 그리고 그 후, 나중에 내 프로그램에서 다른 위젯을 다른 부분에 추가하려고합니다. 중요 한 것은 메인 윈도우를 같은 크기의 위젯을위한 네 부분으로 나누는 것입니다..메인 윈도우를 4 개의 위젯으로 분할했습니다.
이 코드가 있지만 메인 윈도우를 다른 크기의 네 부분으로 나눕니다. 하나는 크고 다른 하나는 아주 작습니다.
장면에서 [..] -> gameview는 삽입 할 위젯입니다.
참고 : 저는 .ui 파일을 사용하지 않고 모든 것을 수동으로 코딩합니다.
containter = new QWidget(this);
container_layout = new QVBoxLayout;
containter2 = new QWidget(this);
container_layout2 = new QVBoxLayout;
central = new QWidget(this);
splitter1->addWidget(scenes[0]->gameview);
splitter1->addWidget(scenes[1]->gameview);
container_layout->addWidget(splitter1);
containter->setLayout(container_layout);
splitter2->setOrientation(Qt::Vertical);
splitter2->addWidget(containter);
if(number_of_scenes == 3)
{
splitter3->addWidget(scenes[2]->gameview);
splitter3->addWidget(new QWidget);
container_layout2->addWidget(splitter3);
containter2->setLayout(container_layout);
}
else if(number_of_scenes == 4)
{
splitter3->addWidget(scenes[2]->gameview);
splitter3->addWidget(scenes[3]->gameview);
container_layout2->addWidget(splitter3);
containter2->setLayout(container_layout);
}
else
{
splitter3->addWidget(new QWidget);
splitter3->addWidget(new QWidget);
container_layout2->addWidget(splitter3);
containter2->setLayout(container_layout);
}
splitter2->addWidget(containter2);
layoutt->addWidget(splitter2);
central->setLayout(layoutt);
setCentralWidget(central);
[QGridLayout] (https://doc.qt.io/qt-5/qgridlayout.html)을 살펴보십시오. 키워드는'stretchFactor'입니다. 이 요소를 사용하면 레이아웃에서 한 요소의 비례 공간을 정의 할 수 있습니다. – Felix