Если вы пишете свою собственную модель, просто включите Qt.ItemIsUserCheckable
флаг в возвращаемом значении метода flags()
и убедитесь, что вы вернетесь действительного значения для Qt.CheckStateRole
от метода data()
,
Если вы используете QStandardItemModel
класс, включает флаг Qt.ItemIsUserCheckable
в тех вы передаете setFlags()
метод для каждого элемента и установить состояние проверки для Qt.CheckStateRole
с методом setData()
.
В интерактивной сессии Python, введите следующую команду:
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()
Какие сигналы (если есть) испускаются при переключении такого элемента/флажка? – marcin
, чтобы ответить самому себе, можно использовать 'model.itemChanged', как показано здесь: http://www.pythoncentral.io/pyside-pyqt-tutorial-qlistview-and-qstandarditemmodel/ – marcin