2017-04-25 3 views
0

S'il vous plaît pouvez-vous m'aider. J'ai une mainwindow classique dans le projet Qt et je veux le diviser en quatre SAME pièces - widgets. Je dois avoir un widget dans la première partie et une autre partie doit être vide. Et après cela, plus tard dans mon programme, j'ai voulu ajouter un autre widget à une autre partie. Important est de diviser la fenêtre principale à quatre parties pour les widgets de la même taille.Qt split mainwindow en quatre widgets

J'ai ce code, mais il divise une fenêtre principale en quatre parties de taille différente. L'un est grand et l'autre est juste très petit, etc.

Dans la scène [..] -> gameview sont des widgets à insérer.

REMARQUE: Je n'utilise pas de fichier .ui, je code tout manuellement.

 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

Jetez un coup d'œil à [QGridLayout] (https://doc.qt.io/qt-5/qgridlayout.html). Le mot-clé est 'stretchFactor'. Ce facteur vous permet de définir la quantité d'espace proportionnelle qu'un élément d'une disposition doit prendre. – Felix

Répondre