Qt 23 布局管理器2 - QBoxLayout水平垂直布局管理器 ,QGridLayout网格布局管理器,以及比例系数设置

本文详细介绍了QBoxLayout中的比例系数设置方法,包括设置特定格子、组件和布局管理器的伸缩因子,并强调了组件初始大小与布局管理器关系。通过实例演示了如何在QHBoxLayout、VBoxLayout和QGridLayout中运用这些技巧实现灵活的组件布局。

布局管理器的比例系数
1 默认情况下以等比例的方式跟新组件的大小
2 可以自定义组件大小更新时的比例系数

QBoxLayout 布局管理器中的比例系数

QBoxLayout 布局管理器中的比例系数设置方法

void QBoxLayout::setStretch ( int index, int stretch )
bool QBoxLayout::setStretchFactor ( QWidget * widget, int stretch )
bool QBoxLayout::setStretchFactor ( QLayout* layout, int stretch )

/* 指定 QBoxLayout中的某个下标的格子 大小比例系数
index : QBoxLayout中的格子下标 即 id
stretch : 比例系数
*/
void QBoxLayout::setStretch ( int index, int stretch )

/* 指定 QBoxLayout中的某个具体组件的 大小比例系数
如果指定组件不存在于 当前QBoxLayout当中时,返回false
存在 返回true
*/
bool QBoxLayout::setStretchFactor ( QWidget * widget, int stretch )

/* 指定 QBoxLayout中的某个具体布局管理器的 大小比例系数
如果指定布局管理器不存在于 当前QBoxLayout当中时,返回false
存在 返回true
/
bool QBoxLayout::setStretchFactor ( QLayout
layout, int stretch )

组件的初始大小是独立于布局管理器设置的,因此 不能保证组件的大小始终符合比例系数的设置!


1 先设置组件的最小size
2 将组件add到布局管理器
3 指定布局管理器 中组件的大小比例系数
这种情况就是 布局管理器无法决定组件的初始大小比例,因为在加入到布局管理器之前 已经设置了组件的最小size


QGridLayout 网格布局管理器
在这里插入图片描述QGridLayout设置布局管理器方法
//以行为单位 设置比例系数
void QGridLayout::setRowStretch ( int row, int stretch )

//以列为单位 设置比例系数
void QGridLayout::setColumnStretch ( int column, int stretch )

在这里插入图片描述在这里插入图片描述

实验:

Widget.h

#ifndef _WIDGET_H_
#define _WIDGET_H_

#include <QtGui/QWidget>
#include <QPushButton>

class Widget : public QWidget
{
    Q_OBJECT
private:
    QPushButton TestBtn1;
    QPushButton TestBtn2;
    QPushButton TestBtn3;
    QPushButton TestBtn4;

    v
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ma浩然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值