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 のオブジェクトを string(C#s ToString counter part in Qt) に変換するにはどうすればよいですか?
(setTextColor の代わりに QMessagBox を使用し、QlistWidget 内のすべての文字列項目を出力したいとします。)