2010-10-24 51 views
11

Tôi có một số QListWidget thông thường với một vài tín hiệu và khe cắm được kết nối. Mọi thứ hoạt động như tôi mong đợi. Tôi có thể cập nhật, truy xuất, xóa, v.v.QListWidget và nhiều lựa chọn

Nhưng giao diện người dùng sẽ không hỗ trợ nhiều lựa chọn.

Làm cách nào để 'bật' nhiều lựa chọn cho QListWidget? Kinh nghiệm hạn chế của tôi với PyQt nói với tôi rằng tôi cần phải tạo một tùy chỉnh QListWidget bằng cách phân lớp .. nhưng điều gì tiếp theo?

Google đã cho tôi câu trả lời C++ nhưng tôi đang tìm Python

http://www.qtforum.org/article/26320/qlistwidget-multiple-selection.html

http://www.qtcentre.org/threads/11721-QListWidget-multi-selection

Trả lời

16

Đáng tiếc là tôi không thể giúp đỡ với các cú pháp cụ thể Python nhưng bạn không cần phải tạo ra bất kỳ các lớp con.

Sau khi QListWidget của bạn được tạo, hãy gọi setSelectionMode() bằng một trong nhiều loại lựa chọn được chuyển vào, có lẽ QAbstractItemView::ExtendedSelection là loại bạn muốn. Có một vài biến thể về chế độ này mà bạn có thể muốn xem.

Trong vị trí của bạn cho tín hiệu itemSelectionChanged(), hãy gọi selectedItems() để nhận được QList của QListWidgetItem con trỏ.

+0

'extendedSelection'. Đó là những gì tôi đang tìm kiếm. Cảm ơn rất nhiều. –

15

Đối PyQT4 nó

QListWidget.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) 
+0

Đối với PySide, nó chính xác như nhau. – darkgaze

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