我是python的新手,主要是pyqt。问题很简单:我有一个QTableView
,我想“简单地”改变一些行的颜色。我四处阅读后发现,最简单的解决方案应该是以这样的方式覆盖模型中的数据方法:
class MyModel(QtSql.QSqlTableModel):
def data(self,idx,role):
testindex=self.index(idx.row(),idx.column(),idx.parent())
if(role==QtCore.Qt.BackgroundRole):
return QtGui.QColor(255,0,0)
elif role == QtCore.Qt.DisplayRole:
return QtSql.QSqlTableModel().data(testindex)
当我使用这个模型重新实现时,行的颜色正在改变,但是单元格值消失了,返回语句QtSql.QSqlTableModel().data(testindex)
总是None
。
我快疯了,想找到解决办法。你能帮帮我吗?在
您的实现有两种破坏方式:(1)对于任何未指定的角色,它总是返回
None
;(2)每次请求display role时,它都会创建一个QSqlTableModel
的新实例,而不是调用基类方法。在实施应该是这样的:
相关问题 更多 >
编程相关推荐