首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QVBoxLayout添加所有小部件

QVBoxLayout添加所有小部件
EN

Stack Overflow用户
提问于 2017-03-06 22:15:07
回答 2查看 162关注 0票数 0

我正在尝试将一些QLabels添加到QVBoxLayout

代码语言:javascript
复制
QVBoxLayout *qVB = new QVBoxLayout();

QLabel *l1 = new QLabel("L 1");
QLabel *l2 = new QLabel("L 2");
QLabel *l3 = new QLabel("L 3");
QLabel *l4 = new QLabel("L 4");

qVB -> addWidget(l1);
qVB -> addWidget(l2);
qVB -> addWidget(l3);
qVB -> addWidget(l4);

在Java中,有一种更简单的方法:

代码语言:javascript
复制
VBox vb = new VBox();

Label l1 = new Label("1");
Label l2 = new Label("2");
Label l3 = new Label("3");

vb.getChildren().addAll(l1, l2, l3);

Qt\ C++中有什么类似的东西可以让我少打字吗?

EN

回答 2

Stack Overflow用户

发布于 2017-03-06 22:22:53

可以将C++11 基于范围的循环与包含要添加的小部件的带括号的列表一起使用,如下所示:

代码语言:javascript
复制
for(auto label : {l1, l2, l3})
    qVB->addWidget(label);
票数 3
EN

Stack Overflow用户

发布于 2017-03-06 22:56:05

如果你真的想减少你的类型负载,像这样的东西会做到这一点。

代码语言:javascript
复制
std::vector<std::string> names = {"l1", "l2", "l3", .......};
for(std::string name : names)
    qVB->addWidget(new QLabel(name.c_str()));
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42636614

复制
相关文章

相似问题

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