QSqlTableModel, перегрузка функции данных - PullRequest
1 голос
/ 26 февраля 2010

Я пытаюсь унаследовать 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. Где я могу найти его? Или это просто мой звонок не так?

Заранее спасибо.

1 Ответ

2 голосов
/ 26 февраля 2010

Я не уверен, что это должно быть record.value (в вашем коде нет указаний на то, где находится эта переменная record, как и когда она установлена). В любом случае, для «получения данных из QSqlTableModel» (при этом я предполагаю, что вы имеете в виду базовый класс, который вы создаете подклассы), используйте

whatever = QSqlTableModel.data(self, modelIndex, role)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...