Например, существует 4 Qlabels по имени label_1
, label_2
, label_3
и label_4
. Каждый из них имеет другое значение, и я хочу получить доступ к значению, содержащемуся в каждом из них, один за другим, используя любой цикл.Как получить доступ к тексту, содержащемуся в QLabel, используя цикл?
0
A
ответ
3
Вы должны поместить эти ярлыки в контейнер, как QVector<QLabel*>
, вместо того, чтобы давать каждому из них имя, тогда доступ через цикл не является проблемой вообще - просто посмотрите их в векторе по индексу.
Если по какой-то причине вы должны объявить эти четыре метки независимо друг от друга, нет проблем с тем, чтобы их список был поверх другого члена класса.
В своем классе:
QVector<QLabel*> labels;
В конструкторе:
// build the four labels
labels.append(label_1);
labels.append(label_2);
...
Iterate над ними:
foreach (QLabel *l, labels) {
// whatever with l
}
for (unsigned i = 0; i < labels.size(); i++) {
// whatever with labels[i]
}
Спасибо! но на самом деле список может быть довольно длинным **, охватывая от 100 до 500 ** qlabels. Не будет ли список всех ярлыков наверху проблемой. Также хотели бы получить к ним доступ в другом классе, можете ли вы предложить что-то с этим? – Jino
«Список всех ярлыков наверху будет проблемой» - конечно. Используйте табличный вид или что-то в этом роде. Это вещь UX, не связанная с вышесказанным. Нет ничего особенного в виджетах или контейнерах относительно доступа из других экземпляров, применяются простые правила C++. – Mat
Спасибо! попробуем! – Jino