QT学习笔记(十四):QLayout的属性介绍

QT学习笔记(十四):QLayout的属性介绍

主要包括QBoxLayout、和QGridLayout以及QFormLayout等的参数类似。
我主要说明一下QGridLayout在QtDesigner中它的属性的意义,以及QFormLayout的部分属性

一、QGridLayout属性介绍

1、QGridlayout以方格的形式管理窗口部件,先看QGridLayout的属性,如下图
在这里插入图片描述
2、各个参数的介绍:
1)layoutLeftMargin …至layoutBottomMargin在ui_MainWindow.h中自动生成的代码是:

gridLayout->setContentsMargins(20, 10, 10, 10);

学过CSS都知道,这是设置一个元素所有外边距的宽度,或者设置各边上外边距的宽度
On most platforms, the margin is 11 pixels in all directions.

2)HorizontalSpacing…至VerticalSpacing在ui_MainWindow.h中自动生成的代码是:

gridLayout->setHorizontalSpacing(6);
gridLayout->setVerticalSpacing(6);

这是设置两个控件之间的水平和竖直距离

3)LayoutRowStretch在ui_MainWindow.h中自动生成的代码是:

gridLayout->setRowStretch(0, 1);
gridLayout->setRowStretch(1, 1);
gridLayout->setRowStretch(2, 1);

表示在第0行、第1行、第2行 在竖直方向的空间比例分配,大家稍微改一下参数就能看出来效果

4)LayoutColumnStretch在ui_MainWindow.h中自动生成的代码是:

gridLayout->setColumnStretch(1, 1);

表示设置第0列、第1列两者在水平方向的空间比例分配。

5)LayoutRowMinimumHeight在ui_MainWindow.h中自动生成的代码是:

gridLayout->setRowMinimumHeight(0, 1);
gridLayout->setRowMinimumHeight(1, 2);
gridLayout->setRowMinimumHeight(2, 3);

表示在第0行、第1行、第2行的最小高度是1pixels,2pixels,3pixels

6)LayoutColumnMinimumWidth在ui_MainWindow.h中自动生成的代码是:

gridLayout->setColumnMinimumWidth(0, 4);
gridLayout->setColumnMinimumWidth(1, 5);

表示设置第0列、第1列的最小宽度是4pixels、5pixels

7)LayoutSizeConstraint在ui_MainWindow.h中自动生成的代码是:

gridLayout->setSizeConstraint(QLayout::SetDefaultConstraint);

此属性保存布局的调整大小模式看下表:
枚举 QLayout::SizeConstraint 可能的值是:
在这里插入图片描述

二、QFormLayout属性介绍

1、QFormLayout类管理输入型控件和它的label组成的那些form表格,包括它的界面参数如下图
在这里插入图片描述
2、界面中对应的代码如下:

formLayout = new QFormLayout(widget1);  
        formLayout->setSpacing(6);  
        formLayout->setContentsMargins(11, 11, 11, 11);  
        formLayout->setObjectName(QString::fromUtf8("formLayout"));  
        formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);  
        formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows);  
        formLayout->setContentsMargins(0, 0, 0, 0);  
        label_4 = new QLabel(widget1);  
        label_4->setObjectName(QString::fromUtf8("label_4"));  
  
        formLayout->setWidget(0, QFormLayout::LabelRole, label_4);  
  
        lineEdit = new QLineEdit(widget1);  
        lineEdit->setObjectName(QString::fromUtf8("lineEdit"));  
  
        formLayout->setWidget(0, QFormLayout::FieldRole, lineEdit);  
  
        label_5 = new QLabel(widget1);  
        label_5->setObjectName(QString::fromUtf8("label_5"));  
  
        formLayout->setWidget(1, QFormLayout::LabelRole, label_5);  
  
        comboBox = new QComboBox(widget1);  
        comboBox->setObjectName(QString::fromUtf8("comboBox"));  
  
        formLayout->setWidget(1, QFormLayout::FieldRole, comboBox); 

3、其中值得一说的是:LayoutFieldGrowthPolicy属性
此枚举指定可用于控制表单字段增长方式的不同策略。
在这里插入图片描述

4、还有一个属性值得说:LayoutRowWrapPolicy
这个属性设置了表格如何排版各个元素
如果你想把每个标签放在相关字段的上方,而不是和它相邻,就设置这个属性值为WrapAllRows。
在这里插入图片描述

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值