❝该示例演示如何使用布局类(QHBoxLayout)对控件进行布局。❞
通常,子窗口小部件使用布局对象而不是通过显式指定位置和大小来安排在窗口内。在这里,我们构造了一个QLabel和QLineEdit控件并使用QHBoxLayout将它们并排布局。
#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
函数提供给控件的位置和大小。布局本身在对setLayou
的调用中提供给窗口本身。只有通过布局对它们负责管理的控件(和其他布局)的影响,布局才可见。
在上面的示例中,每个控件的所有权都不是很清楚的。由于我们构建的窗口小部件和布局没有父对象,因此我们希望看到一个空窗口以及两个包含标签和行编辑的单独窗口。但是,「当我们告诉布局来管理标签和行编辑并在窗口上设置布局时,控件和布局本身都会被"重新父化",成为窗口的子级」。
C:\Qt\{你的Qt版本}\Examples\{你的Qt版本}\widgets\tutorials\widgets\windowlayout
https://doc.qt.io/qt-5/qtwidgets-tutorials-widgets-windowlayout-example.html