我正在尝试将一些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 loop与braced-init-list一起使用,其中包含要添加的小部件,如下所示:
for(auto label : {l1, l2, l3})
qVB->addWidget(label);