gpt4 book ai didi

c++ - QVBoxLayout 行大小

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:35 24 4
gpt4 key购买 nike

我有一个小部件,我正在使用 QVBoxLayout 和小部件来组织小部件行。第一个小部件是 QLabel,然后是多个 QPushButton 小部件。

每个小部件的宽度占宽度的 100%,但是第一个小部件(QLabel)的高度比后面的 QPushButton 小部件大得多。所有 QPushButton 的高度都相同。

看起来第一行的大小已增加以填充布局以填充父级。如果是这种情况,是否有任何方法可以指示布局仅使用内部小部件所需的高度而不进行填充?

最佳答案

QLabel 和 QPushButton 布局行为的区别在于 sizePolicy,因此解决方案是在垂直部分设置策略 QSizePolicy::Maximum

#include <QtWidgets>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w;
QVBoxLayout *lay = new QVBoxLayout(&w);
QLabel *label = new QLabel("Stack Overflow");
label->setStyleSheet("background-color:salmon;");
QSizePolicy sp = label->sizePolicy();
sp.setVerticalPolicy(QSizePolicy::Maximum);
label->setSizePolicy(sp);
lay->addWidget(label);
for (int i=0; i<4; i++) {
lay->addWidget(new QPushButton(QString("pushbutton-%1").arg(i)));
}
w.show();
return a.exec();
}

关于c++ - QVBoxLayout 行大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56176139/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com