2015-08-12 4 views
1

Я получаю эту ошибку при попытке испускают dataChanged сигнала:PySide Ошибка излучающее dataChanged сигнал в QAbstractItemModel подклассе

self.dataChanged.emit(index, index) 
TypeError: Value types used on meta functions (including signals) need to be registered on meta type: QModelIndex 

Вот соответствующая часть моего QAbstractItemModel подкласса:

class PropertyItemModel(QtCore.QAbstractItemModel): 
    def __init__(self, parent=None): 
     super(PropertyItemModel, self).__init__(parent) 

    def setData(self, index, value, role=Qt.EditRole): 
     if role != Qt.EditRole: 
      return False 

     item = self.getItem(index) 
     result = item.setData(index.column(), value) 

     if result: 
      self.dataChanged.emit(index, index) 

      # Doesn't work either (same error): 
      # self.emit(QtCore.SIGNAL("dataChanged(QModelIndex, QModelIndex)"), index, index) 
      # QtCore.QObject.emit(self, QtCore.SIGNAL("dataChanged(const QModelIndex&, const QModelIndex&)"), index, index) 

     return result 

Я m с использованием PySide версии 1.2.1 с Qt 4.8.5 на Mac OS X (10.10). Ошибка может быть связана с моей конкретной средой. Этот код работал над другим Mac.

ответ

0

Действительно, это было вызвано конфликтами установки. У меня были разные вкусы python (система, пиво, пакет с официального сайта).

Свежая установка с использованием доморощенного исправлена ​​проблема.