W CSharp jej tak proste, jak pisanie:Jak mogę iterować elementy QListWidget i pracować z każdym elementem?
listBox1.Items.Add("Hello");
listBox1.Items.Add("There");
foreach (string item in listBox1.Items)
{
MessageBox.Show(item.ToString());
}
i mogę łatwo dodawać różne obiekty na liście, a następnie pobrać je za pomocą foreach. Próbowałem to samo podejście w Qt 4.8.2, ale wydaje się, że są different.though wyglądają one bardzo podobne w first.I stwierdzili, że Qt obsługuje foreach więc poszedłem dalej i próbował coś takiego:
foreach(QListWidgetItem& item,ui->listWidget->items())
{
item.setTextColor(QColor::blue());
}
który nie powiodło się. Mówi, że item() potrzebuje parametru, który mnie myli. Próbuję iterować przez samą ListBox, więc co to znaczy? Próbowałem przekazując obiekt ListBox jak sam parametr ten ponownie nie zbyt:
foreach(QListWidgetItem& item,ui->listWidget->items(ui->listWidget))
{
item.setTextColor(QColor::blue());
}
Więc oto moje pytania:
- Jak mogę iterację elementów QListWidget w Qt?
- Czy mogę przechowywać obiekty jako elementy w QListWidgets, takich jak C#?
- Jak przekonwertować obiekt w QListWidgets na ciąg (C# s ToString counter part w Qt)?
(Załóżmy, że chcemy korzystać z QMessagBox zamiast tego SetTextColor i chcesz wydrukować wszystkie elementy łańcucha w QlistWidget.)
Dzięki za to. To niefortunne, że Qt zdecydowało się na metodę klasy items, która nie zwraca kolekcji QListWidgetItems, jakiej można by się spodziewać za pomocą metody klasy items dla dowolnej innej biblioteki dev. Mylące i niezdarne. Chodzi mi o to, dlaczego chwalić się foreach() w Qt, gdy nie zapewniają one nawet sposób iteracji submitem tego widgetu z nim? – Volomike