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

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中,有一种更简单的方法:

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 ++中是否有类似内容可以使我减少打字次数?

最佳答案

您可以将C ++ 11 Range-based for loopbraced-init-list一起使用,其中包含要添加的小部件,如下所示:

for(auto label : {l1, l2, l3})
    qVB->addWidget(label);

09-25 20:25