Tutoriel sur les widgets - Utilisation des mises en page

En général, les widgets enfants sont disposés à l’intérieur d’une fenêtre à l’aide d’objets de mise en page plutôt qu’en spécifiant explicitement leurs positions et leurs tailles. Ici, nous créons un widget « label » et un widget « line edit » 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();
}
Étiquette à côté d'un champ de saisie dans une mise en page horizontale

L’objet ` layout ` que nous créons gère les positions et les tailles des widgets qui lui sont fournis via la fonction ` addWidget()`. La mise en page elle-même est fournie à la fenêtre lors de l’appel à ` setLayout()`. Les mises en page ne sont visibles qu’à travers les effets qu’elles produisent sur les widgets (et les autres mises en page) dont elles assurent la gestion.

Dans l’exemple ci-dessus, la propriété de chaque widget n’est pas immédiatement évidente. Puisque nous construisons les widgets et la mise en page sans objets parents, on s’attendrait à voir une fenêtre vide et deux fenêtres distinctes contenant respectivement un libellé et un champ de saisie. Cependant, lorsque nous demandons à la disposition de gérer l’étiquette et le champ de saisie, puis que nous appliquons cette disposition à la fenêtre, les widgets et la disposition elle-même sont « re-parentalisé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.