首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >QVBoxLayout行大小

QVBoxLayout行大小
EN

Stack Overflow用户
提问于 2019-05-17 04:27:14
回答 1查看 464关注 0票数 1

我有一个小部件,我正在使用QVBoxLayout与小部件来组织小部件的行。第一个小部件是一个QLabel,后面跟着多个QPushButton小部件。

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-17 04:52:38

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

代码语言:javascript
运行
复制
#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();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56176139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档