QBoxLayout、QHBoxLayout、QVBoxLayout

QBoxLayout

一、描述

QBoxLayout 占用它获得的空间(来自其父布局或来自 parentWidget()),将其分成一排框,并使每个托管小部件填充一个框。

创建 QBoxLayout 的最简单方法是使用便利类,QHBoxLayout(用于 Qt::Horizo​​ntal 框)或 QVBoxLayout(用于 Qt::Vertical 框)。也可以直接使用 QBoxLayout 构造函数,并指定其方向。 

二、类型成员

1、enum QBoxLayout::Direction:此类型用于确定框布局的方向。

  • LeftToRight:从左到右水平。
  • RightToLeft:从右到左水平。
  • TopToBottom:从上到下垂直。
  • BottomToTop:从下到上垂直。

三、成员函数

1、QBoxLayout(QBoxLayout::Direction dir, QWidget *parent = nullptr)

布局直接设置为 parent 的顶级布局(小部件只能有一个顶级布局。它由 QWidget::layout() 返回。)。

      ~QBoxLayout()

布局的小部件不会被销毁。 

2、void addLayout(QLayout *layout, int stretch = 0)

将布局添加到框布局的末尾,并带有 stretch 拉伸因子。

3、void addSpacerItem(QSpacerItem *spacerItem)

将 spacerItem 添加到框布局的末尾。

4、void addSpacing(int size)

在框布局的末尾添加一个大小为 size 的不可拉伸空间(QSpacerItem)。 

5、void addStretch(int stretch = 0)

将最小尺寸为零的可拉伸空间(QSpacerItem)添加到框布局的末尾。

6、void addStrut(int size)

如果是垂直的,将布局的水平方向的最小值限定为size。

如果是水平的,将布局的垂直方向的最小值限定为size。

7、void addWidget(QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment())

将小部件添加到此框布局的末尾,具有拉伸因子 stretch 和对齐方式 alignment。

拉伸因子决定布局中控件之间的比例。

如果拉伸因子为 0 并且 QBoxLayout 中没有其他任何项目的拉伸因子大于零,则空间根据所涉及的每个小部件的 QWidget::sizePolicy() 分配。

默认对齐方式为 0,即小部件填充整个区域

      void insertWidget(int index, QWidget *widget, int stretch = 0, Qt::Alignment alignment = Qt::Alignment())

在 index 处插入小部件,具有拉伸因子 stretch 和对齐方式 alignment。 如果 index 为负数,则在末尾添加小部件。

如果拉伸因子为 0 并且 QBoxLayout 中没有其他任何项目的拉伸因子大于零,则空间根据所涉及的每个小部件的 QWidget::sizePolicy() 分配。

默认对齐方式为 0,即小部件填充整个区域

8、QBoxLayout::Direction direction() / void setDirection(QBoxLayout::Direction direction)

返回方/ 设置向。addWidget() 和 addSpacing() 朝这个方向工作。

9、void insertItem(int index, QLayoutItem *item)

在 index 处将 item 插入框布局。 如果 index 为负数,则将 item 添加到末尾。

10、void insertLayout(int index, QLayout *layout, int stretch = 0)

在 index 处插入布局,使用 stretch 拉伸。 如果 index 为负数,则在最后添加布局。

layout 成为 框布局的子元素。

11、void insertSpacerItem(int index, QSpacerItem *spacerItem)

在 index 处插入 spacerItem,最小尺寸和拉伸因子为零。如果 index 为负数,则在末尾添加空格。 

12、void insertSpacing(int index, int size)

在 index 处插入一个不可拉伸的空间(QSpacerItem),size 为大小。 如果 index 为负数,则在末尾添加。

框布局具有默认边距和间距。 此功能增加了额外的空间。

13、void insertStretch(int index, int stretch = 0)

在 index  处插入一个可拉伸空间(QSpacerItem),最小尺寸为零,拉伸因子为 stretch 。如果 index 为负数,则在末尾添加。

14、void setStretch(int index, int stretch)

设置 index 处的拉伸因子。

       int stretch(int index)

返回 index 处的拉伸因子。 

       bool setStretchFactor(QWidget *widget, int stretch)

设置小部件的拉伸因子。返回在此布局中是否找到了小部件(不包括子布局)。

       bool setStretchFactor(QLayout *layout, int stretch)

设置子布局的拉伸因子。返回在此布局中是否找到了此子布局(不包括子布局)。


QHBoxLayout

一、描述

此类用于构造水平框布局对象。

该类的最简单用法是这样的:

    QWidget *window = new QWidget;
    QPushButton *button1 = new QPushButton("One");
    QPushButton *button2 = new QPushButton("Two");
    QPushButton *button3 = new QPushButton("Three");
    QPushButton *button4 = new QPushButton("Four");
    QPushButton *button5 = new QPushButton("Five");

    QHBoxLayout *layout = new QHBoxLayout(window);
    layout->addWidget(button1);
    layout->addWidget(button2);
    layout->addWidget(button3);
    layout->addWidget(button4);
    layout->addWidget(button5);

    window->show();

首先,创建要添加到布局的小部件。然后,创建 QHBoxLayout 对象,通过在构造函数中将其设置为父窗口。接下来将小部件添加到布局中。window 将是添加到布局中的小部件的父级

如果没有将父窗口传递给构造函数,可以稍后使用 QWidget::setLayout() 将 QHBoxLayout 对象安装到窗口上。此时,布局中的小部件被重新设置为将 window 作为其父级。


QVBoxLayout

一、描述

此类用于构造垂直框布局对象。和 QHBoxLayout 类似。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值