首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标签在QVBoxLayout中垂直展开

标签在QVBoxLayout中垂直展开
EN

Stack Overflow用户
提问于 2013-05-01 15:51:34
回答 1查看 3.1K关注 0票数 5

我已经按顺序将一个包含小句子的QLabel、一个QLineEdit和一个QPushButton插入到QVBoxLayout中。我的主窗口占用户桌面的70%。

我的问题是,我的标签扩展到父窗口高度的近80%,而QLineEdit和` `QButton\被挤压在底部。

我想出了一个方法来解决这个问题:我插入了更多没有内容的标签,但这不是最好的解决方案。我能做什么?

我也尝试过QFormLayout,但它不符合我的需求。我喜欢小部件按垂直顺序排列。我用QSizePolicy尝试了很多方法,但都不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-01 16:07:09

我想你要找的是添加一个间隔物品。在将所有小部件添加到布局中之后,尝试在布局中使用addStretch

示例:

代码语言:javascript
复制
#include <QtGui>

class W: public QWidget
{
    Q_OBJECT

    public:
        W(bool spacer, QWidget *parent = 0)
            : QWidget(parent)
        {
            QLabel *l = new QLabel("Hello!");
            QLineEdit *e = new QLineEdit;
            QPushButton *p = new QPushButton("Go");

            QVBoxLayout *vl = new QVBoxLayout;
            vl->addWidget(l);
            vl->addWidget(e);
            vl->addWidget(p);

            if (spacer)
                vl->addStretch();

            setLayout(vl);

            resize(200, 400);
        }
};

渲染:

(左侧无拉伸,右侧拉伸。)

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16314580

复制
相关文章

相似问题

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