QT布局管理器(QVBoxLayout,QHBoxLayout)不同部分⽐
例⼤⼩设置⽅法
默认情况如果将多个控件加⼊到QT的布局管理器中(QVBoxLayout、QHBoxLayout)所有控件占⽤的宽度/⾼度是等⽐例⼤⼩的。如下图所⽰:
蓝⾊框占据的空间⾼度和红⾊框占据的空间⾼度为1:1,⽽我想要的是:蓝⾊框部分占据的空间和红⾊框占据的空间⾼度⽐为1:4,即我想⽤来显⽰结果的红⾊框要占据空间多些。
也就是说实际应⽤和开发中往往希望在同⼀个布局管理器中,根据控件实际显⽰内容的多少或⼤⼩其相应的⽐例是不相同的。
快乐英语网
之前试了很多种⽅法都不⾏,偶尔⼀次发现了原来QT提供了布局管理器设置不同部分⽐例⼤⼩的⽅法。acome
bool QBoxLayout::tStretchFactor(QWidget * widget, int stretch)
呈现出bool QBoxLayout::tStretchFactor(QLayout * layout, int stretch)
注:重载函数,因为布局管理器中可以添加Widget和其他的Layout
例⼦:黑利伯瑞
occupational
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);
pLayout->tStretchFactor(m_pGroupBox2, 1);
shower是什么意思
byfarpLayout->tStretchFactor(pLayout1, 1);
pLayout->tStretchFactor(pGroupBox3, 4);