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 [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
