QT布局管理器(QVBoxLayout,QHBoxLayout)不同部分⽐
例⼤⼩设置⽅法面孔
默认情况如果将多个控件加⼊到QT的布局管理器中(QVBoxLayout、QHBoxLayout)所有控件占⽤的宽度/⾼度是等⽐例⼤⼩的。如下图所⽰:
蓝⾊框占据的空间⾼度和红⾊框占据的空间⾼度为1:1,⽽我想要的是:蓝⾊框部分占据的空间和红⾊框占据的空间⾼度⽐为1:4,即我想⽤来显⽰结果的红⾊框要占据空间多些。
古朗月行教案也就是说实际应⽤和开发中往往希望在同⼀个布局管理器中,根据控件实际显⽰内容的多少或⼤⼩其相应的⽐例是不相同的。
之前试了很多种⽅法都不⾏,偶尔⼀次发现了原来QT提供了布局管理器设置不同部分⽐例⼤⼩的⽅法。喜登枝
bool QBoxLayout::tStretchFactor(QWidget * widget, int stretch)
bool QBoxLayout::tStretchFactor(QLayout * layout, int stretch)
注:重载函数,因为布局管理器中可以添加Widget和其他的Layout
例⼦:
QVBoxLayout* layout = new QVBoxLayout;
QPushButton* btn = new QPushButton;
QTableWidget* tableWidget = new QTableWidget;
QHBoxLayout* h_layout = new QHBoxLayout;
layout.addWidget(btn);
layout.addWidget(tableWidget);思远人晏几道
layout.addLayout(h_layout)
跳蚤市场海报layout->tStretchFactor(btn, 1);
layout->tStretchFactor(tableWidget, 2);
layout->tStretchFactor(h_layout, 2);
调⽤tStretchFactor函数后,三个控件的⽐例分别为:1:2:2
拿上⾯的例⼦来说,代码如下:
QVBoxLayout *pLayout = new QVBoxLayout;
颜勤礼碑字帖pLayout->addWidget(m_pGroupBox2);
pLayout->addLayout(pLayout1);
pLayout->addWidget(pGroupBox3);
DefeatedpLayout->tStretchFactor(m_pGroupBox2, 1);
pLayout->tStretchFactor(pLayout1, 1);少年英雄故事
pLayout->tStretchFactor(pGroupBox3, 4);