QTableView проблема с selectionModel () - PullRequest
0 голосов
/ 09 мая 2011

У меня проблема с моим вызовом QTableView.selectionModel (). Я создаю экземпляр моего QTableView в другом классе, затем, когда я открываю новый проект и мне нужно заполнить мое представление, я вызываю функцию fillGrid (), в которую, помимо прочего, я получаю данные. Здесь я также вызываю метод selectionModel ().

Все идет хорошо, когда я в первый раз звоню. Но если я попытаюсь вызвать его снова в том же экземпляре программы, это выдаст мне следующую ошибку:

TypeError: объект 'QItemSelectionModel' не может быть вызван

моя функция fillGrid выглядит так:

def fillGrid(self):

    self.infos = select.getInfosProject(self.parent.db, self.parent.currentProj)
    self.getData()
    header = ["id","hidden","state","filename","asset-shot name","task","buffer","pass","camera","version","user","date","deps","check","comment","start frame","end frame","missing frames","edit start frame","edit end frame"]
    self.model = SequenceGridModel(self.data, header, self)
    self.setModel(self.model)


    self.hideColumn(0)
    self.hideColumn(1)
    font = QtGui.QFont("Verdana", 8)
    self.setFont(font)
    vh = self.verticalHeader()
    vh.setVisible(False)
    hh = self.horizontalHeader()
    hh.setStretchLastSection(True)
    self.resizeColumnsToContents()

    self.setSelectionBehavior(QtGui.QTableView.SelectRows)
    self.selectionModel = self.selectionModel()
    self.connect(self.selectionModel, QtCore.SIGNAL("selectionChanged(QItemSelection, QItemSelection)"), self.getSelection)
    self.setSortingEnabled(True)


    self.setEditTriggers(QtGui.QAbstractItemView.CurrentChanged)
    self.viewport().installEventFilter(self)
    self.setItemDelegateForColumn(13,ComboBoxDelegate(self, self.checkValues))

    self.setColumnWidth(13, 64)

Есть идеи, почему это происходит? Заранее спасибо

1 Ответ

1 голос
/ 09 мая 2011

Вы назначили свой экземпляр QItemSelectionModel для имени selectionModel, но selectionModel является методом класса QTableView. Вам нужно выбрать новое имя для вашей модели выбора. См. Ссылку на класс QAbstractItemView .

Если вы хотите назначить эту модель выбора для применения к вашей модели, вам нужно использовать метод setSelectionModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...