В CSharp это так же просто, как писать:
listBox1.Items.Add("Hello");
listBox1.Items.Add("There");
foreach (string item in listBox1.Items )
{
MessageBox.Show(item.ToString());
}
и я могу легко добавлять различные объекты в список и затем извлекать их, используя foreach. Я попробовал тот же подход в Qt 4.8.2, но кажется, что они разные. Хотя на первый взгляд они очень похожи. Я обнаружил, что Qt поддерживает foreach, поэтому я продолжил и попробовал что-то вроде:
foreach(QListWidgetItem& item,ui->listWidget->items())
{
item.setTextColor(QColor::blue());
}
который потерпел неудачу явно. Он говорит, что items() нужен параметр, который меня смущает. Я пытаюсь перебрать сам ListBox, так что это значит? Я попытался передать объект ListBox в качестве самого параметра, и это снова не удалось:
foreach(QListWidgetItem& item,ui->listWidget->items(ui->listWidget))
{
item.setTextColor(QColor::blue());
}
Итак, вот мои вопросы:
- Как я могу перебирать элементы QListWidget в Qt?
- Могу ли я хранить объекты как элементы в QListWidgets, например С#?
- Как я могу преобразовать объект в QListWidgets в строку (счетная часть С# s ToString в Qt)?
(Предположим, что я хочу использовать QMessagBox вместо этого setTextColor и хочу распечатать все строковые элементы в QlistWidget.)