在C#中,只需要简单地编写以下代码:
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());
}
以下是我的问题:
- 如何在Qt中迭代QListWidget项目?
- 我可以像C#一样将对象存储为QListWidgets中的项目吗?
- 如何将QListWidgets中的对象转换为字符串(与C#的ToString相似)?
(假设我想使用QMessageBox而不是setTextColor,并打印出QlistWidget中的所有字符串项。)