在CSHARP它的那樣簡單書面方式:如何迭代QListWidget項目並處理每個項目?
listBox1.Items.Add("Hello");
listBox1.Items.Add("There");
foreach (string item in listBox1.Items)
{
MessageBox.Show(item.ToString());
}
,我可以在不同的對象列表框輕鬆添加,然後使用的foreach檢索。 我想同樣的方法在Qt的4.8.2,但似乎他們different.though他們看first.I非常相似的發現,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項目重複?
- 可以將對象存儲爲QListWidgets(如C#)中的項目嗎?
- 如何將QListWidgets中的對象轉換爲字符串(C#中的ToString計數器部分在Qt中)?
(假設我想使用一個QMessagBox而不是setTextColor,並希望打印出QlistWidget所有的字符串項。)
感謝。不幸的是,Qt決定創建一個不會返回QListWidgetItems集合的項目類方法,就像其他開發庫的items類方法所期望的那樣。令人困惑和笨拙。我的意思是,爲什麼在Qt中吹噓foreach()時他們甚至沒有提供一種方法來迭代這個小部件的子項? – Volomike