已经为QSqlTableModel
创建子类,并为“删除行”图标添加了一个额外的列&数据最初显示。编辑后(默认委托),添加的列消失(我认为因为model.select()
中调用了setData
)。我用setData
重新实现了每个人似乎都在呼唤的东西:
class Titles(QSqlTableModel):
def __init__(self):
QSqlTableModel.__init__(self)
self.setTable("titles")
self.setEditStrategy(self.OnFieldChange)
self.select()
def setData(self, i, v, role=Qt.EditRole):
if role == Qt.EditRole:
print i.row(); print i.column(); print v.toString()
return super(QSqlTableModel, self).setData(i, v, role=Qt.EditRole)
进入" 9"进入QTableView的第一个单元格(QModelIndex(0,0))打印" 0,0,9",所以数据到达setData,但为什么不写入数据库&安培;返回新值?也许替代方法是确切地知道用于更新数据库的Qt内置setData函数中的内容。问候
注意:在超级调用的任一侧放置self.lastError()。text()不会显示错误