LINUX.ORG.RU

Поясните по model-viewer

 ,


0

1

Есть класс CAction, наследник QtGui.QWidget. В него изначально были добавлены модели разные, которые отображаются на дисплее.

Я попытался добавить свою:

class CMyModel(QAbstractTableModel):
    column = [u'1', u'2', u'3', u'4', u'5', u'6']
    
    def __init__(self, parent):
        QAbstractTableModel.__init__(self, parent)
        self.items = []
        
    def columnCount(self, index = None):
        return 6


    def rowCount(self, index = QModelIndex()):
        return len(self.items)

Ну и кинул ее в CAction:

self.addModels('MyModel',  CMyModel(self))

Но она не отображается. Почему? Данные я в нее пока не какие не добавлял, хотел просто увидеть заголовок.

Deleted

Последнее исправление: Bizun (всего исправлений: 1)

УПД, думал, что не хватает headerData, добавил:

    def headerData(self, section, orientation, role = Qt.DisplayRole):
        if role == Qt.DisplayRole:
            return QVariant(self.column[section])
        return QVariant()
Не помогло :(

Deleted
()

Я не спец по PyQt, но в плюсовом API метод data() pure virtual, т.е. у него обязательно должна быть реализация в наследнике.

Попробуй добавить всё-таки метод data(), который просто QVariant() возвращает, мало ли чего там питон подсовывает вместо него.

Kosyak ★★★★
()
Ответ на: комментарий от Kosyak

Тогда странно. А стандартный QTableView отображает?

Не. Мне намекнули, что я зря модель добавил в объект унаследованный от QtGui.QWidget, т.е. в CAction. Сказали - QtGui.QWidget ни чего не рисует. Но я даже не знаю, куда его добавить, если не сюда.

Deleted
()

Что-то мне подсказывает, что в модели должен быть реализован метод возврата значения по индексу. Вроде здесь он data() называется.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.