QAbstractTableModel中的QAbstractItemModel数据虚方法错误

时间:2014-10-13 14:35:50

标签: python-2.7 pyside

我正在尝试使用PySide 1.2和Python 2.73进行this

这是我的等效代码:

class AssetTableModel(QtCore.QAbstractTableModel):

    # ...

    def data(self, index, role):
        if not index.isValid():
            return None

        item = self.getItemFromIndex(index)
        if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole:
            return item.qt_data(index.column())

        if role == QtCore.Qt.ForegroundRole:
            color = item.qt_foreColor()
            if color is None:
                # the following line is causing the error
                return QtCore.QAbstractTableModel.data(self, index, role)

            return QtGui.QBrush(color)

这是我得到的错误:

NotImplementedError: pure virtual method 'QAbstractItemModel.data()' not implemented.

我尝试返回QtCore.QAbstractItemModel.data(self,index,role),但仍然报告错误。对于没有问题的代表,我正在做这类事情,它似乎遵循我在上面的C ++示例中看到的内容。

如果确实不支持,我该怎么办呢?我知道我可以将条件改为:

if role == QtCore.Qt.ForegroundRole and item.qt_foreColor():

但是,假设我想要捕捉Style颜色并修改它(更改alpha或变暗)。我如何在PySide中解决这个问题?

0 个答案:

没有答案