我正在尝试使用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中解决这个问题?