Si vous écrivez votre propre modèle, il suffit d'inclure le drapeau Qt.ItemIsUserCheckable
la valeur de retour de la méthode flags()
et assurez-vous que vous revenez une valeur valide pour la Qt.CheckStateRole
de la méthode data()
.
Si vous utilisez la classe QStandardItemModel
, comprennent le Qt.ItemIsUserCheckable
drapeau dans ceux que vous passez à la méthode setFlags()
de chaque élément, et définissez le contrôle état pour la Qt.CheckStateRole
avec sa méthode setData()
.
Dans une session interactive Python, tapez:
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()
Quels signaux (le cas échéant) sont émis lorsque cet élément/cette case à cocher est activé? – marcin
pour me répondre, 'model.itemChanged' peut être utilisé, comme indiqué ici: http://www.pythoncentral.io/pyside-pyqt-tutorial-qlistview-and-qstandarditemmodel/ – marcin