Question

J'ai conçu un QMainWindow avec le designer de QtCreator's. Il se compose du widget central par défaut (un QWidget) qui contient une QVBoxLayout avec tous les autres widgets en elle. Maintenant, tout ce que je veux, est que le QVBoxLayout occupe automatiquement l'ensemble des widgets central rectangle espace.

Comment puis-je faire cela? Je ne trouve aucune propriété ni utilisable dans les propriétés des widgets centrales, ni celles de QVBoxLayout's.

Était-ce utile?

La solution

Vous ne devez pas créer un QVBoxLayout manuellement. Il suffit de sélectionner votre QWidget central et appuyer sur un bouton make-layout.

text alt

Autres conseils

Si vous voulez faire avec le code au lieu d'utiliser QtCreator, vous pouvez définir la mise en page dans un QWidget puis définissez le QWidget comme le widget central de la fenêtre principale comme ceci:

#include <QtGui>
#include <QWidget>
#include <QHBoxLayout>
#include "mainwindow.h"

MainWindow::MainWindow() {  

        // Set layout
        QHBoxLayout *layout = new QHBoxLayout;
        layout->addWidget(myWidget1);
        layout->addWidget(myWidget2);

        // Set layout in QWidget
        QWidget *window = new QWidget();
        window->setLayout(layout);

        // Set QWidget as the central layout of the main window
        setCentralWidget(window);

}

Ajoutez au moins un widget sur votre MainWindow. Sélectionnez ensuite la fenêtre en cliquant dessus et cliquez sur le bouton VerticalLayout en haut de QTCreator. Vous verticale mise en page est automatiquement ajouté au widget central et remplit toute la surface.

Ceci est déjà répondu, mais je préfère garder tous les éléments de contrôle et mises en page ajoutés manuellement à la forme. Je ne pas ajouter des contrôles dans les fichiers de classe, je brancher simplement les signaux / slots pour masquer / afficher des widgets correspondant à la logique de la classe, au sein de la classe.

Pour ajouter manuellement une mise en page à un widget que vous devez d'abord ajouter au moins un widget enfant / contrôle. Ce n'était pas tout à fait clair pour moi et je tentais d'ajouter la mise en page d'abord.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top