2010-04-16 38 views
11

Tôi đang có một số QListView có chứa một số mục. Bây giờ tôi muốn lấy chỉ mục của mục đã chọn, tức là nếu tôi chọn phần tử thứ 5, tôi sẽ nhận được 5. Làm thế nào tôi có thể nhận được điều này?Cách lấy chỉ mục listitem đã chọn trong Qt

Trả lời

16

Trong mọi quan điểm trong Qt, bạn có phương pháp sau đây:

QItemSelectionModel * QAbstractItemView :: selectionModel() const

Về cơ bản, nó sẽ trả về một mô hình mà bạn có thể thực hiện hành động, giống như nhận được chỉ số chọn ...

có một cái nhìn ở đây: QItemSelectionModel

bạn sẽ tìm thấy nhiều phương pháp để giúp bạn có được chỉ số của bạn (es).

Hy vọng điều đó sẽ hữu ích!

+0

Andy tôi đã nhận nó, nhưng tôi đã tìm thấy selectIndexes(), nhưng các chỉ mục được chọn sẽ cung cấp danh sách, chúng tôi cần lặp lại để lấy modelindex. Nhưng tôi muốn một API cung cấp cho modelindex mục đã chọn trong một cảnh .. lặp lại danh sách tốn thời gian .. có cách trực tiếp hoặc chúng tôi chỉ cần thực hiện như thế này – Naruto

+0

Có, bạn có currentIndex () sẽ cung cấp cho bạn chỉ mục hiện tại trong lựa chọn của bạn ... Tôi không biết nếu bạn biết sự khác biệt giữa các mục đã chọn và chỉ mục hiện tại ... Chỉ mục hiện tại là kinda chỉ mục cuối cùng bạn đã chọn ... Vì vậy, tôi nghĩ rằng nó sẽ là những gì bạn đang tìm kiếm ... –

+0

Có, nó hoạt động nhờ – Naruto

0

Không có cách nào dễ dàng để làm điều này, vì QListView có thể xử lý cây như cấu trúc. Bạn có thể làm cho các mục danh sách của bạn xuất phát từ QListViewItem và thêm một thành viên dữ liệu bổ sung để giữ một chỉ mục. Bạn phải đặt lại các chỉ mục khi sắp xếp khóa học.

Các vấn đề liên quan