當使用自動連接連接插槽,而QListView :: currentChanged(電流,以前的)信號,我得到:解決的:Qt 4.8.4:不能插槽連接而QListView :: currentChanged()信號
QMetaObject::connectSlotsByName: No matching signal for on_modelosView_currentChanged(QModelIndex,QModelIndex)
不使用自動連接,我得到:
AttributeError: 'builtin_function_or_method' object has no attribute 'connect'
我使用PySide和我的代碼如下:
class Modelos(QtGui.QDialog):
def __init__(self, parent):
QtGui.QDialog.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
# Inicializa o modelo
self.model = ModelosModel(self)
self.ui.modelosView.setModel(self.model)
# Inicializa o mapper
self.mapper = QtGui.QDataWidgetMapper(self)
self.mapper.setModel(self.model)
self.mapper.addMapping(self.ui.modelosEdit, 0)
self.mapper.toFirst()
self.ui.modelosView.currentChanged.connect(self.onmodelosView_currentChanged)
@QtCore.Slot(QtCore.QModelIndex, QtCore.QModelIndex)
def onmodelosView_currentChanged(self, current, previous):
self.mapper.setCurrentIndex(current.row())
其中: ModelosModel是QtAbstractListModel的子類,modelosView是QListView小部件。
我的目標是使用此信號來更新映射器索引,以便用戶可以在QListView中選擇他想要的項目並使用映射器在QPlainTextEdit中進行編輯。
編輯:要清除的混亂,這是發起第一錯誤代碼:
class Modelos(QtGui.QDialog):
def __init__(self, parent):
QtGui.QDialog.__init__(self, parent)
self.ui = Ui_Dialog()
self.ui.setupUi(self)
# Inicializa o modelo
self.model = ModelosModel(self)
self.ui.modelosView.setModel(self.model)
# Inicializa o mapper
self.mapper = QtGui.QDataWidgetMapper(self)
self.mapper.setModel(self.model)
self.mapper.addMapping(self.ui.modelosEdit, 0)
self.mapper.toFirst()
@QtCore.Slot(QtCore.QModelIndex, QtCore.QModelIndex)
def on_modelosView_currentChanged(self, current, previous):
self.mapper.setCurrentIndex(current.row())
我清楚地使用自動連接功能,但我得到了錯誤:
QMetaObject::connectSlotsByName: No matching signal for on_modelosView_currentChanged(QModelIndex,QModelIndex)
編輯2 (解決方案):
好吧,我正在檢查文檔的第十次,只是意識到QListView :: currentChanged(...)實際上是一個插槽而不是一個信號。我只是用我需要的信號創建了QListView的自定義子類,並使currentChanged發出該信號。
感謝您的幫助!
我不知道PySide _at all_,但你沒有裝飾'onmodelosView_currentChanged(..)'方法作爲一個插槽,而不是信號? – cmannett85 2013-02-13 15:41:18
它應該是一個插槽。你爲什麼認爲這應該是一個信號? – 2013-02-14 11:15:25
「沒有匹配的信號on_modelosView_currentChanged(QModelIndex,QModelIndex)」 – cmannett85 2013-02-14 11:48:46