Tutoriel sur les widgets - Utilisation des dispositions

En général, les widgets enfants sont disposés à l'intérieur d'une fenêtre à l'aide d'objets de disposition plutôt qu'en spécifiant explicitement les positions et les tailles. Ici, nous construisons une étiquette et un widget d'édition de ligne que nous souhaitons disposer côte à côte.

#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QWidget window;
    QLabel *label = new QLabel(QApplication::translate("windowlayout", "Name:"));
    QLineEdit *lineEdit = new QLineEdit();

    QHBoxLayout *layout = new QHBoxLayout();
    layout->addWidget(label);
    layout->addWidget(lineEdit);
    window.setLayout(layout);
    window.setWindowTitle(
        QApplication::translate("windowlayout", "Window layout"));
    window.show();
    return app.exec();
}
Etiquette à côté d'une ligne d'édition dans une mise en page horizontale

L'objet layout que nous construisons gère les positions et les tailles des widgets qui lui sont fournis par la fonction addWidget(). La disposition elle-même est fournie à la fenêtre dans l'appel à setLayout(). Les dispositions ne sont visibles qu'à travers les effets qu'elles ont sur les widgets (et autres dispositions) qu'elles sont chargées de gérer.

Dans l'exemple ci-dessus, la propriété de chaque widget n'est pas immédiatement claire. Étant donné que nous construisons les widgets et la disposition sans objet parent, nous nous attendons à voir une fenêtre vide et deux fenêtres distinctes contenant une étiquette et une ligne d'édition. Cependant, lorsque nous demandons à la disposition de gérer l'étiquette et l'édition de ligne et que nous définissons la disposition sur la fenêtre, les widgets et la disposition elle-même sont "reparentés" pour devenir des enfants de la fenêtre.

Exemple de projet @ code.qt.io

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.