布局管理器的应用

布局管理器能根据窗口的变化自动适应窗口大小。布局管理器不是界面组件,只是一种定位的策略,通常使用类库自带的布局管理器类,但也可以自定义布局管理器。

布局管理器类结构:

    

其中QFromLayout布局在嵌入式领域用的最广泛

布局管理器使用方式:

1.创建布局管理器对象

2.链接组件对象

扫描二维码关注公众号,回复: 4604585 查看本文章

3.将某个小部件的管理器设置为总布局

QHBoxLayout* hLayout1 = new QHBoxLayout();

    QHBoxLayout* hLayout2 = new QHBoxLayout();

    QVBoxLayout* vLayout = new QVBoxLayout();

    //创建布局管理器对象

    TestBtn1.setText("Test Button 1");

    TestBtn1.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

    TestBtn1.setMinimumSize(160, 30);

    TestBtn2.setText("Test Button 2");

    TestBtn2.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);//设置控件的大小变化,Expanding:拉伸

    TestBtn2.setMinimumSize(160, 30);

    hLayout1->setSpacing(10);//设置间隔

    hLayout1->addWidget(&TestBtn1);

    hLayout1->addWidget(&TestBtn2);

    //链接GUI组件对象

    TestBtn3.setText("Test Button 3");

    TestBtn3.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

    TestBtn3.setMinimumSize(160, 30);

    TestBtn4.setText("Test Button 4");

    TestBtn4.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);

    TestBtn4.setMinimumSize(160, 30);

    hLayout2->setSpacing(10);

    hLayout2->addWidget(&TestBtn3);

    hLayout2->addWidget(&TestBtn4);

    //链接GUI组件对象

    vLayout->setSpacing(10);

    vLayout->addLayout(hLayout1);

    vLayout->addLayout(hLayout2);

    ////链接布局组件对象,布局管理器之间的相互嵌套

    setLayout(vLayout);

    //将vLayout设置为总布局

    //布局管理器还能设置按比例变化

}

    QLineEdit* nameEdit = new QLineEdit();

    QLineEdit* emailEdit = new QLineEdit();

    QLineEdit* addressEdit = new QLineEdit();

    QFormLayout* layout = new QFormLayout();

    layout->addRow("Name:", nameEdit);     //设置标签和组件

    layout->addRow("Email:", emailEdit);

    layout->addRow("Address:", addressEdit);

    layout->setRowWrapPolicy(QFormLayout::WrapAllRows);    //显示方式

    layout->setLabelAlignment(Qt::AlignLeft);

    setLayout(layout);

    setWindowTitle("FTP");

            //详细的使用方法参考帮助文档

栈式布局管理器:

    -所有组件在垂直于屏幕的方向上被管理

    -每次只有一个组件显示在屏幕上

    -只有顶层的主机会被最终显示

//文章参考狄泰软件学院Qt视频教程

猜你喜欢

转载自blog.csdn.net/qq_37182906/article/details/84933584