ウィジェット・チュートリアル - レイアウトの使用

通常、子ウィジェットは位置やサイズを明示的に指定するのではなく、レイアウト・オブジェクトを使ってウィンドウ内に配置します。ここでは、ラベル・ウィジェットとライン編集ウィジェットを並べて配置します。

#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();
}

作成したlayout オブジェクトは、addWidget() 関数で供給されたウィジェットの位置とサイズを管理します。レイアウト自体は、setLayout ()の呼び出しでウィンドウ自体に供給されます。レイアウトは、管理を担当するウィジェット(および他のレイアウト)に与える影響によってのみ可視化されます。

上の例では、各ウィジェットの所有権はすぐにはわかりません。親オブジェクトなしでウィジェットとレイアウトを構築しているため、空のウィンドウと、ラベルとライン編集を含む2つのウィンドウが表示されると予想されます。しかし、レイアウトにラベルとライン・エディットを管理するように指示し、ウィンドウにレイアウトを設定すると、ウィジェットとレイアウト自体がウィンドウの子になるように''リペアレント''されます。

プロジェクト例 @ code.qt.io

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。