布局管理器的应用

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

 

布局管理器类结构:

 

    

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

 

布局管理器使用方式:

1.创建布局管理器对象

2.链接组件对象

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视频教程

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值