我对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)
知道为什么会这样吗? 提前致谢
答案 0 :(得分:1)
您已将QItemSelectionModel实例分配给名称selectionModel,但selectionModel是QTableView类的方法。您需要为您的选择模型选择一个新名称。请参阅QAbstractItemView类参考。
如果要分配该选择模型以应用于模型,则需要使用setSelectionModel方法。