crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Не отображаются данные в таблице
bizun
  опции профиля:
сообщение 29.5.2014, 9:25
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 29.5.2014
Пользователь №: 4144

Спасибо сказали: 0 раз(а)




Репутация:   0  


Есть таблица со списком списков 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
  опции профиля:
сообщение 30.5.2014, 1:38
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

Спасибо сказали: 24 раз(а)




Репутация:   0  


Это весь код? Кто вызывает все эти функции?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 2:18