QLayout的属性介绍

主要包括QBoxLayout、和QGridLayout以及QFormLayout等的参数类似。

我主要说明一下QGridLayout在QtDesigner中它的属性的意义,以及QFormLayout的部分属性

一、QGridLayout属性介绍

1、QGridlayout以方格的形式管理窗口部件,先看QGridLayout的属性,如下图

2、各个参数的介绍

layoutLeftMargin ...至layoutBottomMargin在ui_MainWindow.h中自动生成的代码是:

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

学过CSS都知道,这是设置一个元素所有外边距的宽度,或者设置各边上外边距的宽度

On most platforms, the margin is 11 pixels in all directions.

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

gridLayout->setHorizontalSpacing(6);

gridLayout->setVerticalSpacing(6);

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

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

gridLayout->setRowStretch(0, 1);

gridLayout->setRowStretch(1, 1);

gridLayout->setRowStretch(2, 1);

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

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

gridLayout->setColumnStretch(1, 1);

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

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

gridLayout->setRowMinimumHeight(0, 1);

gridLayout->setRowMinimumHeight(1, 2);

gridLayout->setRowMinimumHeight(2, 3);

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

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

gridLayout->setColumnMinimumWidth(0, 4);

gridLayout->setColumnMinimumWidth(1, 5);

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

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

gridLayout->setSizeConstraint(QLayout::SetDefaultConstraint);

This property holds the resize mode of the layout.看下表

enum QLayout::SizeConstraint

The possible values are:

Constant Value Description

QLayout::SetDefaultConstraint 0 The main widget‘s minimum size is set to minimumSize(), unless the widget already has a minimum size.
QLayout::SetFixedSize 3 The main widget‘s size is set to sizeHint(); it cannot be resized at all.
QLayout::SetMinimumSize 2 The main widget‘s minimum size is set to minimumSize(); it cannot be smaller.
QLayout::SetMaximumSize 4 The main widget‘s maximum size is set to maximumSize(); it cannot be larger.
QLayout::SetMinAndMaxSize 5 The main widget‘s minimum size is set to minimumSize() and its maximum size is set tomaximumSize().
QLayout::SetNoConstraint 1
The widget is not constrained.

QFormLayout属性介绍

1、QFormLayout类管理输入型控件和它的label组成的那些form表格,包括它的界面参数如下图

2、界面中对应的代码如下表,

Cpp代码  

  1. formLayout = new QFormLayout(widget1);
  2. formLayout->setSpacing(6);
  3. formLayout->setContentsMargins(11, 11, 11, 11);
  4. formLayout->setObjectName(QString::fromUtf8("formLayout"));
  5. formLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
  6. formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows);
  7. formLayout->setContentsMargins(0, 0, 0, 0);
  8. label_4 = new QLabel(widget1);
  9. label_4->setObjectName(QString::fromUtf8("label_4"));
  10. formLayout->setWidget(0, QFormLayout::LabelRole, label_4);
  11. lineEdit = new QLineEdit(widget1);
  12. lineEdit->setObjectName(QString::fromUtf8("lineEdit"));
  13. formLayout->setWidget(0, QFormLayout::FieldRole, lineEdit);
  14. label_5 = new QLabel(widget1);
  15. label_5->setObjectName(QString::fromUtf8("label_5"));
  16. formLayout->setWidget(1, QFormLayout::LabelRole, label_5);
  17. comboBox = new QComboBox(widget1);
  18. comboBox->setObjectName(QString::fromUtf8("comboBox"));
  19. formLayout->setWidget(1, QFormLayout::FieldRole, comboBox);

3、其中值得一说的是:LayoutFieldGrowthPolicy属性

enum QFormLayout::FieldGrowthPolicy

This enum specifies the different policies that can be used to control the way in which the form‘s fields grow.

Constant Value Description

QFormLayout::FieldsStayAtSizeHint 0 The fields never grow beyond their effective size hint. This is the default forQMacStyle.
QFormLayout::ExpandingFieldsGrow 1 Fields with an horizontal size policy of Expanding or MinimumExpanding will grow to fill the available space. The other fields will not grow beyond their effective size hint. This is the default policy for Plastique.
QFormLayout::AllNonFixedFieldsGrow 2 All fields with a size policy that allows them to grow will grow to fill the available space. This is the default policy for most styles.

4、还有一个属性值得说:LayoutRowWrapPolicy

This property holds the way in which the form‘s rows wrap.

//这个属性设置了表格如何排版各个元素

If you want to display each label above its associated field (instead of next to it), set this property to WrapAllRows.

//如果你想把每个标签放在相关字段的上方,而不是和它相邻,就设置这个属性值为WrapAllRows。

enum QFormLayout::RowWrapPolicy

This enum specifies the different policies that can be used to control the way in which the form‘s rows wrap.

Constant Value Description

QFormLayout::DontWrapRows 0 Fields are always laid out next to their label. This is the default policy for all styles except Qt Extended styles and QS60Style.
QFormLayout::WrapLongRows 1 Labels are given enough horizontal space to fit the widest label, and the rest of the space is given to the fields. If the minimum size of a field pair is wider than the available space, the field is wrapped to the next line. This is the default policy for Qt Extended styles and andQS60Style.
QFormLayout::WrapAllRows 2 Fields are always laid out below their label.
时间: 2024-11-06 20:38:43

QLayout的属性介绍的相关文章

CSS float 浮动属性介绍

float属性:定义元素朝哪个方向浮动. 1.页面标准文档流.浮动层.float属性 1.1 文档流 HTML页面的标准文档流(默认布局)是:从上到下,从左到右,遇块(块级元素)换行. 1.2 浮动层 浮动层:给元素的float属性赋值后,就是脱离文档流,进行左右浮动,紧贴着父元素(默认为body文本区域)的左右边框. 而此浮动元素在文档流空出的位置,由后续的(非浮动)元素填充上去:块级元素直接填充上去,若跟浮动元素的范围发生重叠,浮动元素覆盖块级元素.内联元素:有空隙就插入. 1.3 floa

IOS的UITextField,UIButton,UIWebView的一些属性介绍和IOS图片资源的使用技巧

有时候UI给开发的资源跟实际的frame不一致,这个时候我们就要去拉伸图片 UIImage* image = [[UIImage imageNamed:@"text_field_bg.png"] stretchableImageWithLeftCapWidth:20 topCapHeight:0]; //stretchableImageWithLeftCapWidth使图片有拉伸效果 UITextField的属性介绍: UITextField* field = [[UITextFiel

javascript继承—prototype属性介绍(2)

js里每一个function都有一个prototype属性,而每一个实例都有constructor属性,并且每一个function的prototype都有一个constructor属性,这个属性会指向自身.这会形成一个非常有意思的链式结构.举例如下: function Person(){ this.name =12; } console.log(Person.prototype); console.log(Person.prototype.constructor);//输出Person,指向自身

RelativeLayout经常使用属性介绍

以下介绍一下RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal                                           水平居中 android:layout_centerVertical                                            垂直居中 android:layout_centerInparent              

Android TableLayout 常用的属性介绍及演示

TableLayout经常用的属性是: 1.android:collapseColumns:以第0行为序,隐藏指定的列:把android:collapseColumns=0,2 意思是把第0和第2列隐藏 2.android:shrinkColumns:以第0行为序,自动延伸指定的列填充可用部分:当LayoutRow里面的控件还没有布满布局 时,shrinkColumns不起作用,设置了shrinkColumns=0,1,2,布局完全没有改变,因为LayoutRow里面还剩足够的空 间.当Layo

布局的一些属性介绍

DIV+CSS布局中主要CSS属性介绍: Float: Float属性是DIV+CSS布局中最基本也是最常用的属性,用于实现多列功能,我们知道<div>标签默认一行只能显示一个,而使用Float属性可以实现一行显示多个div的功能,最直接解释方法就是能实现表格布局的多列功能. Margin: Margin属性用于设置两个元素之间的距离. Padding: Padding属性用于设置一个元素的边框与其内容的距离. Clear: 使用Float属性设置一行有多个DIV后(多列),最好在下一行开始之

ios 开发日记 13-剖析网易新闻标签栏视图切换(addChildViewController属性介绍)

iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍) 时间 2014-06-25 21:45:21  CSDN博客 原文  http://blog.csdn.net/hmt20130412/article/details/34523235 主题 网易iOS开发 本来只是打算介绍一下addChildViewController这个方法的,正好今天朋友去换工作面试问到网易新闻标签栏效果的实现,就结合它,用个小Demo实例介绍一下:(具体解释都写在了Demo里

SlidingMenu 常用属性介绍

SlidingMenu 常用属性介绍:menu.setMode(SlidingMenu.LEFT);//设置左滑菜单menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置滑动的屏幕范围,该设置为全屏区域都可以滑动menu.setShadowDrawable(R.drawable.shadow);//设置阴影图片menu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度menu

selector属性介绍

本文来自:http://blog.csdn.net/brokge/article/details/9713041 简介: 根据不同的选定状态来定义不同的现实效果 分为四大属性: android:state_selected是选中 android:state_focused是获得焦点 android:state_pressed是点击 android:state_enabled是设置是否响应事件,指所有事件 android:state_window_focused默认时的背景图片 引用位置:res/