Trong CSharp của nó đơn giản như thành văn bản:Làm thế nào tôi có thể lặp qua các mục QListWidget và làm việc với từng mục?
listBox1.Items.Add("Hello");
listBox1.Items.Add("There");
foreach (string item in listBox1.Items)
{
MessageBox.Show(item.ToString());
}
và tôi có thể dễ dàng thêm các đối tượng khác nhau để một hộp danh sách và sau đó lấy chúng bằng foreach. Tôi đã thử các phương pháp tương tự trong Qt 4.8.2 nhưng có vẻ như họ đang different.though họ trông rất giống nhau tại first.I thấy rằng Qt hỗ trợ foreach vì vậy tôi tiếp tục và cố gắng cái gì đó như:
foreach(QListWidgetItem& item,ui->listWidget->items())
{
item.setTextColor(QColor::blue());
}
mà thất bại rõ ràng. Nó nói các mục() cần một tham số mà confuses me.Tôi đang cố gắng để lặp qua ListBox chính nó, vì vậy điều này có nghĩa là gì? tôi đã cố gắng đi qua các đối tượng ListBox như các tham số tự làm việc này một lần nữa thất bại trong quá:
foreach(QListWidgetItem& item,ui->listWidget->items(ui->listWidget))
{
item.setTextColor(QColor::blue());
}
Vì vậy, đây là những câu hỏi của tôi:
- Làm thế nào tôi có thể lặp qua một mục QListWidget trong Qt?
- Tôi có thể lưu trữ các đối tượng dưới dạng các mục trong QListWidgets như C# không?
- Làm cách nào để chuyển đổi một đối tượng trong QListWidgets thành chuỗi (phần truy cập ToString của C# s trong Qt)?
(giả sử tôi muốn sử dụng một QMessagBox thay vì setTextColor đó và muốn in ra tất cả các mục trong chuỗi QlistWidget.)
Cảm ơn cho việc này. Thật không may là Qt đã quyết định thực hiện một phương thức lớp mà không trả về một tập hợp các QListWidgetItems giống như một phương thức lớp mong đợi với bất kỳ thư viện dev nào khác. Khó hiểu và vụng về. Tôi có nghĩa là, tại sao khoe khoang về một foreach() trong Qt khi họ thậm chí không cung cấp một cách để lặp lại các subitems của widget này với nó? – Volomike