Hi guys, I've been battling for the last day to try and get a checkbox inside a tableview to be checkable.. I've looked all over the net and still my checkbox don't check.
Also, the checkbox is reading the value (0 or 1) from a sql database correctly, but it's showing me this value (which I dont want) Can somebody please have a look at this code and tell me why it may not be working? Thanks in advance, Cris class EditableShoSqlModel(QtSql.QSqlQueryModel): def __init__(self, parent=None): super(EditableShoSqlModel, self).__init__(parent) def flags(self, index): flags = super(EditableShoSqlModel, self).flags(index) if index.column() in (12): flags |= QtCore.Qt.ItemIsEditable | QtCore.Qt.ItemIsUserCheckable | Qt.ItemIsEnabled return flags def data(self, index, role=QtCore.Qt.DisplayRole): value2 = super(EditableShoSqlModel, self).data(index) if index.column() == 12 and role == QtCore.Qt.CheckStateRole: if value2 != 0: return QtCore.Qt.Checked else: return QtCore.Qt.Unchecked return QtSql.QSqlQueryModel.data(self, index, role) def setData(self, index, value, role): if index.column() not in (12): return False primaryKeyIndex = self.index(index.row(), 0) id = self.data(primaryKeyIndex) if index.column() == 12 and role == QtCore.Qt.CheckStateRole: value2 = super(EditableShoSqlModel, self).data(index) if value2 != 0: ok = self.setAniStatus(id, value) return QtCore.Qt.Unchecked else: ok = self.setAniStatus(id, value) return QtCore.Qt.Checked return True self.refresh() return ok def refresh(self): MainWindow.AllShotsFromProject () def setAniStatus(self, id, Number): mon = Number if mon != False: mon = 1 else: mon = 0 query = QtSql.QSqlQuery() sql = "UPDATE Shot SET Ani= '{0}' WHERE idShot = {1}".format(int(mon), id.toString()) query.prepare(sql) print 'lastQuery:', query.lastQuery() return query.exec_()
<<attachment: checkbox.jpg>>
_______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt