在 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());
}
所以这是我的问题:
- 如何遍历 Qt 中的 QListWidget 项目?
- 我可以将对象作为项目存储在 C# 等 QListWidgets 中吗?
- 如何将 QListWidgets 中的对象转换为字符串(Qt 中的 C#s ToString 计数器部分)?
(假设我想使用 QMessagBox 而不是那个 setTextColor 并想打印出 QlistWidget 中的所有字符串项。)