自定义QSqlTableModel不设置SQL数据,另外setEditorData不工作

时间:2014-06-08 07:17:34

标签: python mysql qt pyqt qsqltablemodel

已经为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()不会显示错误

0 个答案:

没有答案