Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не отображаются данные в таблице
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Модель/Представление
bizun
Есть таблица со списком списков items. Данные в нем хранятся как в двумерном массиве. Переопределил метод data, но в таблице все равно пусто. По крайней мере, вьювер ни чего не рисует. Прочитал про сигнал dataChanged, отправляю его, все равно ни чего нет. Часть кода:
class Model(QAbstractTableModel):
  
    
    def __init__(self, parent):
        QAbstractTableModel.__init__(self, parent)
        self.items = []
        self.clientId = None
        
    def setClientId(self, cid):
        self.clientId = cid
        self.loadItems()
        
    def loadItems(self):
        db = QtGui.qApp.db
        table = db.table('table')
        where = 'table.`client_id` = ' + str(self.clientId)
        stmt = db.selectStmt(table)
        
        query = db.query(stmt)
        while query.next():
            record = query.record()
            v_year = forceString((record.value('1')))
            v_ovra = forceString((record.value('2')))
            v_ovrb = forceString((record.value('3')))
            v_chlb = forceString((record.value('4')))
            v_chlc = forceString((record.value('5')))
            v_espr = forceString((record.value('6')))
            self.items.append([v_year, v_ovra, v_ovrb, v_chlb, v_chlc, v_espr]);
            
        self.update()
        
    def data(self, index, role=Qt.DisplayRole):
        column = index.column()
        row = index.row()
        if role == Qt.DisplayRole:
            item = self.items[row]
            return toVariant(item[column])
        return QVariant()
        
    def update(self):
        index1 = self.index(0, 0)
        index2 = self.index(self.columnCount(), self.rowCount())
        self.dataChanged.emit(index1, index2)
        
    def setData(self, index, value, role=QtCore.Qt.EditRole):
        if role == QtCore.Qt.EditRole:
            self.items[index.row()][index.column] = value
            self.update()
            return True
        return False
        
    def columnCount(self):
        return 6

    def rowCount(self):
        return len(self.items)
        
    def headerData(self, section, orientation, role = Qt.DisplayRole):
        if role == Qt.DisplayRole:
            return QVariant(self.column[section])
        return QVariant()
Trisch
Это весь код? Кто вызывает все эти функции?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.