`
qimo601
  • 浏览: 3420983 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

QLayout的属性介绍

    博客分类:
  • Qt
阅读更多


主要包括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、界面中对应的代码如下表,

 

 

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属性

 

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.

 

 

1
0
分享到:
评论

相关推荐

    QLayout应用实例

    Qt工具中QLayout的应用例子,下载后可看到有4个小例子,分别是: 1、QFormLayout 2、QGridLayout 3、QHBoxLayout 4、QVBoxLayout

    QT5 卡片布局(QLayout)

    QT5实现的卡片布局,基于QLayout的CardStackLayout,实现动画效果。

    07 QLayout布局器QObject子节点遍历.zip

    qt video,从基础开始,第7部分,一共14部分,使用vs2015的addin作为教学工具,很不错的。

    电子-BK3431QLAYOUT指南.pdf

    电子-BK3431QLAYOUT指南.pdf,物联网/通信技术蓝牙通信

    福优林@Qt5小白变大牛初级篇word---第8章.pdf

    每个小部件通过sizeHint和sizePolicy属性将其大小要求报告给布局,并且该布局相应地分配可用空间。 Qt Designer是一个强大的工具,用于在布局中交互式创建和排列小部件。 第7章讲述了一些窗口部件,当时往界面上...

    Qt布局管理相关练习代码

    1.2.5 QLayout类的大小约束属性的取值 1.3 可扩展窗口 1.4 分裂器(QSplitter) 2. 设置伙伴(buddy) 3. 设置Tab键顺序 4. Qt Creator中的定位器 ———————————————— 版权声明:本文为CSDN博主「...

    qt 最基础 最详细的 layout 基本布局 源代码

    qt 最基础 最详细的 layout 基本布局 源代码 很适合基础薄弱的下载,学习这个之后你会对qt有很大的了解

    Qt自写ToolBox可以同时展开多个Bar(升级版)

    3. 控件除了Bar提供了设置高度接口外,其他都不会提供设置Size、Width、Height等函数接口,因为控件使用了自适应宽高的架构,如果去设置了这些属性会破坏控件的结构 导致出现滚动条后还需要去计算各个控件的宽高等 ...

    Qt5 第3章 Qt 5布局管理.ppt

    Qt5开发及实例 第3章 Qt 5布局管理

    [精通QT4编程电子书及源码][PDF][教程]

    本书详细介绍了Qt的基础知识和GUI编程应用,举例翔实,内容全面,基本涵盖了Qt编程的各个方面。全书共分3篇21章,包括Qt GUI编程的基础知识(对话框、基础窗口部件、程序主窗口、布局管理),中级编程(2D绘图、拖放...

    layoutmgr.rar

    VC++(MFC),UI布局管理器。功能类似QT的QLayout

    精通Qt4编程(第二版)源代码

    \5.1 Qt布局管理器——QLayout 121 \5.1.1 Qt布局管理器简介 121 \5.1.2 布局管理器及窗口部件大小策略 \5.1.2 的应用 125 \5.2 分裂器部件QSplitter 132 \5.3 栈部件QStackedWidget 134 \5.4 工作空间部件...

    精通qt4编程(源代码)

    \5.1 Qt布局管理器——QLayout 121 \5.1.1 Qt布局管理器简介 121 \5.1.2 布局管理器及窗口部件大小策略 \5.1.2 的应用 125 \5.2 分裂器部件QSplitter 132 \5.3 栈部件QStackedWidget 134 \5.4 工作空间部件...

    Qt:layout测试及Qlabel加载图片demo

    测试QLayout和QLabel加载图片的demo MyDebug << "label1->size" << label1->size(); QString path = QCoreApplication::applicationDirPath(); path = QFileDialog::getOpenFileName(this, "open image", path, ...

    Qt语言从入门到精通

    基础部分:介绍Qt编程环境安装,编程环境使用技巧,及以Qt开发起点界面开发必不可少的UI控件使用编程为引导做到让学习者由生变熟的转化过程。进阶部分:主要以一个例子开始讲解实际开发过程所需技能要达到的成度即...

    Qt5翻译基础工程-Translate-Ubuntu.tar.gz

    #include <QLayout> #include int main(int argc, char *argv[]) { QApplication a(argc, argv) QWidget* pWnd = new QWidget(); QPushButton* pBtn = new QPushButton(QPushButton::tr("Test Translate")) ...

    精通Qt4编程 pdf 中文版 part2

    5.1 Qt布局管理器——QLayout 5.2 分裂器部件Qsplitter 5.3 栈部件Qstackedwidget 5.4 工作空间部件QWorkspace 5.5 多文档区部件QMdiArea 5.6 小结 中级篇 第6章 2D绘图 第7章 拖放操作和剪贴机 第8章 文件处理 第9...

    精通Qt4编程 pdf 中文版 part3

    5.1 Qt布局管理器——QLayout 5.2 分裂器部件Qsplitter 5.3 栈部件Qstackedwidget 5.4 工作空间部件QWorkspace 5.5 多文档区部件QMdiArea 5.6 小结 中级篇 第6章 2D绘图 第7章 拖放操作和剪贴机 第8章 文件处理 第9...

    精通Qt4编程 pdf 中文版 part1

    5.1 Qt布局管理器——QLayout 5.2 分裂器部件Qsplitter 5.3 栈部件Qstackedwidget 5.4 工作空间部件QWorkspace 5.5 多文档区部件QMdiArea 5.6 小结 中级篇 第6章 2D绘图 第7章 拖放操作和剪贴机 第8章 文件处理 第9...

    qt实现倒计时示例

    代码如下:#include <QApplication>#include <QLabel>#include <QDate>#include <QLayout>int main(int argc, char *argv[]){ QApplication a(argc, argv); QLabel *label = new QLabel; QDate currentDate = ...

Global site tag (gtag.js) - Google Analytics