Я пытаюсь наследовать QSqlTableModel, чтобы сделать данные im мой дисплей таблицы так, как мне нужно.QSqlTableModel, перегрузка данных функции
class TableViewModel(QSqlTableModel):
def __init__(self):
super(TableViewModel, self).__init__()
def flags(self, modelIndex):
if not modelIndex.isValid():
return
if modelIndex.column() != 1 and modelIndex.column() != 4:
return Qt.ItemIsEnabled | Qt.ItemIsSelectable
return Qt.ItemIsEditable | Qt.ItemIsEnabled | Qt.ItemIsSelectable
def data(self, modelIndex, role=Qt.DisplayRole):
if not modelIndex.isValid():
return QVariant()
if role != Qt.DisplayRole & role != Qt.EditRole:
return QVariant()
return record.value(modelIndex.column())
С помощью этого кода я получаю только пустые ячейки. Без функции data() этот код работает отлично, данные, отображаемые в TableView, точно должны быть.
Я просто запутался, получив данные от QSqlTableModel. Где я могу найти его? Или это просто мой звонок?
Заранее спасибо.
спасибо, это помогло. Я пытался сделать это самостоятельно, но где-то ошибся, а в результате - рекурсия – serge
Спасибо, но если этот ответ помог, как насчет его принятия? Это тактический этикет (используйте значок в виде галочки под номером слева от ответа, который вы хотите принять). –
возможно супер (TableViewModel, self) .data (modelIndex, role) лучше;) – Grissiom