Вот так наследуем и меняем модель для просмотра таблицы
этот код размещается в разделе INIT
class editModel(pentadb.zzModel):
def __init__(self,zzModel):
pentadb.zzModel.__init__(self,zzModel)
self.zzModel=zzModel
self.rasx={}
def setData(self, index, data, role):
text=data.toString()
nal=u"%s" % self.data(self.createIndex(index.row(),1)).toString()
if num(nal)<num(text):
return False
else:
self.rasx[index.row()]=text
if num(text)==0:
del self.rasx[index.row()]
return True
def data(self,index, role=Qt.DisplayRole):
curcol=self.zzModel.columns[index.column()]
if role==Qt.DisplayRole and curcol=='rasx':
if index.row() in self.rasx:
return QVariant(u"%s" % self.rasx[index.row() ])
else:
return QVariant("")
elif role == Qt.BackgroundRole and curcol=='rasx':
return QVariant(QColor("lightgreen"))
else:
return self.zzModel.data(index,role)
def flags(self,index):
# curcol=self.zzModel.columns[index.column()]
# if curcol=='rasx':
# return Qt.ItemIsDragEnabled | Qt.ItemIsSelectable | Qt.ItemIsDropEnabled | Qt.ItemIsEnabled |Qt.ItemIsEditable
# else:
return Qt.ItemIsDragEnabled | Qt.ItemIsSelectable | Qt.ItemIsDropEnabled | Qt.ItemIsEnabled
mem.zzGridWidget.grid.setModel(editModel(mem.zzGridWidget.grid.model()))