Nếu bạn đang viết mô hình riêng của bạn, chỉ cần bao gồm cờ Qt.ItemIsUserCheckable
trong giá trị trả về từ phương pháp flags()
, và đảm bảo rằng bạn quay trở lại một giá trị hợp lệ cho Qt.CheckStateRole
từ phương pháp data()
.
Nếu bạn sử dụng lớp QStandardItemModel
, bao gồm cờ Qt.ItemIsUserCheckable
trong những bạn vượt qua phương pháp của mỗi mục setFlags()
, và thiết lập trạng thái kiểm tra cho Qt.CheckStateRole
với phương pháp setData()
của nó.
Trong một phiên Python tương tác, gõ như sau:
from PyQt4.QtGui import *
model = QStandardItemModel()
item = QStandardItem("Item")
item.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
item.setData(QVariant(Qt.Checked), Qt.CheckStateRole)
model.appendRow(item)
view = QListView()
view.setModel(model)
view.show()
Nguồn
2009-05-12 19:49:48
những tín hiệu nào (nếu có) được phát ra khi mục/hộp kiểm đó được bật? – marcin
để tự trả lời, 'model.itemChanged' có thể được sử dụng, như được hiển thị ở đây: http://www.pythoncentral.io/pyside-pyqt-tutorial-qlistview-and-qstandarditemmodel/ – marcin