如何将labels
设置为稍后要调用的数组?我似乎无法了解labels
的类型,以便将其解除。
我拥有的是这一点,但是维护起来会相当难看。 如果我可以改变这个
ui->label_11->setVisible(false);
ui->label_5->setVisible(false);
ui->label_12->setVisible(false);
ui->label_44->setVisible(false);
ui->label_43->setVisible(false);
ui->label_9->setVisible(false);
ui->label_10->setVisible(false);
ui->label_42->setVisible(false);
对此,这是最优选的。但是,也许我正在以错误的方式思考这个问题。
SometypeIdoNotKnow values[7] = {ui->label_11,
ui->label_5,
ui->label_12,
ui->label_44,
ui->label_43,
ui->label_9,
ui->label_10,
ui->label_42};
for (int i=0; i <= 7; i++){
values[i]->setVisible(false);
}
答案 0 :(得分:2)
如果编译器不是很古老,请使用C ++ 11:
// If you only want to iterate some labels
auto const labels = {ui->label_11, ui->label_12, ui->label_44,
ui->label_43, ui->label_9, ui->label_10,
ui->label_42};
// If you want to iterate all labels
auto labels = findChildren<QLabel*>();
for (auto label : labels) label->hide();
答案 1 :(得分:0)
谢谢@drescherjm的答案。 这似乎有效。
QLabel* values[7] = {ui->label_11,
ui->label_12,
ui->label_44,
ui->label_43,
ui->label_9,
ui->label_10,
ui->label_42};
for (int i = 0; i < 7; i++){
values[i]->setVisible(false);
qDebug() << i;
}