crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
Toisen
  опции профиля:
сообщение 17.5.2013, 11:15
Сообщение #1


Новичок


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

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




Репутация:   0  


Собственно сабж. Создается табличка QAbstractTableModel с двумя колонками и в последствии заполняется данными. Основная проблема в том, что в PySide нет QVariant(). как выйти из этого положения - понятия не имею...
class TableModel(QtCore.QAbstractTableModel):
    def __init__(self, parent):
        QtCore.QAbstractTableModel.__init__(self)
        self.gui = parent
        self.colLabels = ['ID', 'Name']
        self.cached = ETable.filling()
 
    def rowCount(self, parent):
        return len(EConnect.Parser(EConnect.Connect()))
 
    def columnCount(self, parent):
        return len(self.colLabels)
 
    def data(self, index, role):
        if not index.isValid():
            return QtCore.QVariant()
        elif role != QtCore.Qt.DisplayRole and role != QtCore.Qt.EditRole:
            return QtCore.QVariant()
        value = ''
        if role == QtCore.Qt.DisplayRole:
            row = index.row()
            col = index.column()
            value = self.cached[row][col]
        return QtCore.QVariant(value)
 
    def headerData(self, section, orientation, role):
        if orientation == QtCore.Qt.Horizontal and role == QtCore.Qt.DisplayRole:
            return QtCore.QVariant(self.colLabels[section])
        return QtCore.QVariant()
 
 
class Table(QtGui.QWidget):
    def __init__(self, parent):
        QtGui.QWidget.__init__(self, parent)
        self.table = QtGui.QTableView(self)
        self.table.resize(250, 360)
        self.model = TableModel(self.table)
        self.table.setModel(self.model)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 17.5.2013, 12:25
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

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




Репутация:   8  


Нужно просто убрать все использования QVariant
Например:
return QtCore.QVariant(self.colLabels[section])

заменяется на
return self.colLabels[section]

и т.д.

invalid QVariant (QtCore.QVariant()) заменяется на None
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 13.5.2025, 23:46