Python QSqlTableModel:用户可以输入和检查数据
我想创建一个QSQLTableModel来显示SQL数据库。 数据库是空的,我希望用户输入数据。我希望列0具有用户可选中框。 我找到了以下代码。但它并没有完全起作用。如果我输入数据并按enter键,则数据不会显示Python QSqlTableModel:用户可以输入和检查数据,python,pyqt,pyqt5,qsqltablemodel,qsqldatabase,Python,Pyqt,Pyqt5,Qsqltablemodel,Qsqldatabase,我想创建一个QSQLTableModel来显示SQL数据库。 数据库是空的,我希望用户输入数据。我希望列0具有用户可选中框。 我找到了以下代码。但它并没有完全起作用。如果我输入数据并按enter键,则数据不会显示 self.model = TableModel(self) self.model.setTable("Table1") class TableModel(QSqlTableModel): def __init__(self, *args, **kwargs
self.model = TableModel(self)
self.model.setTable("Table1")
class TableModel(QSqlTableModel):
def __init__(self, *args, **kwargs):
QSqlTableModel.__init__(self, *args, **kwargs)
self.checkeable_data = {}
def flags(self, index):
fl = QSqlTableModel.flags(self, index)
if index.column() == 0:
fl |= Qt.ItemIsUserCheckable
return fl
def data(self, index, role=Qt.DisplayRole):
if role == Qt.CheckStateRole and (
self.flags(index) & Qt.ItemIsUserCheckable != Qt.NoItemFlags
):
if index.row() not in self.checkeable_data.keys():
self.setData(index, Qt.Unchecked, Qt.CheckStateRole)
return self.checkeable_data[index.row()]
else:
return QSqlTableModel.data(self, index, role)
def setData(self, index, value, role=Qt.EditRole):
if role == Qt.CheckStateRole and (
self.flags(index) & Qt.ItemIsUserCheckable != Qt.NoItemFlags
):
self.checkeable_data[index.row()] = value
self.dataChanged.emit(index, index, (role,))
return True
return QSqlTableModel.setData(self, index, value, role)
请提供一份