2013-12-12 2 views
0

Например, существует 4 Qlabels по имени label_1, label_2, label_3 и label_4. Каждый из них имеет другое значение, и я хочу получить доступ к значению, содержащемуся в каждом из них, один за другим, используя любой цикл.Как получить доступ к тексту, содержащемуся в QLabel, используя цикл?

ответ

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] 
} 
+0

Спасибо! но на самом деле список может быть довольно длинным **, охватывая от 100 до 500 ** qlabels. Не будет ли список всех ярлыков наверху проблемой. Также хотели бы получить к ним доступ в другом классе, можете ли вы предложить что-то с этим? – Jino

+0

«Список всех ярлыков наверху будет проблемой» - конечно. Используйте табличный вид или что-то в этом роде. Это вещь UX, не связанная с вышесказанным. Нет ничего особенного в виджетах или контейнерах относительно доступа из других экземпляров, применяются простые правила C++. – Mat

+0

Спасибо! попробуем! – Jino

 Смежные вопросы

  • Нет связанных вопросов^_^