请你帮帮我。 我在 Qt 项目中有一个经典的主窗口,我想将它分成四个 SAME 部分 - 小部件。我需要在第一部分有一个小部件,而另一部分必须是空的。在那之后,在我的程序的后面,我想将另一个小部件添加到另一个部分。重要的是将主窗口分成四个部分,用于相同大小的小部件。
我有这段代码,但它将主窗口分成大小不同的四个部分。一个很大,另一个很小等等。
在 scene[..]->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);
最佳答案
试试mdi区。 http://doc.qt.io/qt-5/qmdiarea.html还有一个例子 https://doc.qt.io/archives/4.6/mainwindows-mdi.htm一些同学在我的一个编程类(class)中将它用于游戏,以按照您所描述的方式做一些事情。
关于c++ - Qt 将主窗口拆分为四个小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43621315/