布局管理器的比例系数
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

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

被折叠的 条评论
为什么被折叠?



