Qt将主窗口分成四个小部件

时间:2017-04-25 21:31:01

标签: c++ qt user-interface widget qt-creator

请你帮我。 我在Qt项目中有一个经典的主窗口,我想把它分成四个 SAME 部分 - 小部件。我需要在第一部分中有一个小部件,而另一部分必须是空的。之后,在我的程序中,我想在另一个部分添加另一个小部件。重要的是将主窗口分为四个部分,用于相同大小的小部件。

我有这个代码,但它将主窗口分成四个不同大小的部分。一个是大而另一个是非常小等。

在场景[..] - >中,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);

1 个答案:

答案 0 :(得分:1)

尝试mdi区域。 http://doc.qt.io/qt-5/qmdiarea.html还有一个例子https://doc.qt.io/archives/4.6/mainwindows-mdi.htm一些同学在我的一个编程课程中使用它来做一个游戏,按照你所描述的方式做一些事情。