2017-04-25 120 views
0

請你幫助我。 我在Qt項目中有一個經典的主窗口,我想將其拆分爲四個部分 - 小部件SAME。我需要在第一部分有一個小部件,另一部分必須是空的。之後,在我的程序後面,我想添加另一個部件到另一個部件。重要的是將主窗口分爲四部分,用於相同大小的小部件Qt將主窗口分割爲四個小部件

我有這個代碼,但它將主窗口分成不同大小的四個部分。一個是大而另一個只是非常小等。

在場景[..] - > 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

看看[QGridLayout](https://doc.qt.io/qt-5/qgridlayout.html)。關鍵字是'stretchFactor'。這個因子允許你定義佈局中一個元素應該佔用多少比例空間。 – Felix

回答