我的基本问题是我不能让self.commitData.emit()在PyQt5中工作,因为它在PyQt4上工作。
QItemDelegate和self.commitData.emit(编辑器)引发错误:
self.commitData.emit(editor)AttributeError:未定义信号 #class'filterDelegate'的第一个超类
我的子类到QItemDelegate的部分如下所示:
自定义代理:
class filterDelegate(QItemDelegate):
def __init__(self,parent=None):
super(filterDelegate,self).__init__(parent)
self.parameterlist=parent.parameterlist
self.parent=parent
def dataCommit(self):
index=self.mindex
model=index.model()
editor=self.sender()
lastrow=model.rowCount()-1
if isinstance(editor,(QComboBox)):
self.commitData.emit(editor)
self.closeEditor.emit(editor,QAbstractItemDelegate.NoHint)
错误发生在包含self.commitData.emit(editor)和的行 PyCharm将self.commitData.emit显示为没有属性emit。 此外,为上面的self.commitData.emit(编辑器)替换QItemDelegate.commitData.emit(编辑器)会产生错误:
AttributeError:'PyQt5.QtCore.pyqtSignal'对象没有属性 'emit'这可能与之前看到的错误相同。
奇怪的是,这一切都适用于PyQt4但不适用于PyQt5。
关于如何为PyQt5发出commitData信号的任何想法都是受欢迎的,我在Google上一小时后找不到答案。
非常感谢