我的表单中有一个listview
,我有一个项目委托。我需要做的是从我的项目委托中更改项目的背景颜色。
好吧,假设我有一个Listview,我填写了这个列表
"Blue",
"Red",
"Green"
另一方面,我的listview有一个Item委托。我需要用自己的颜色更改这些项目的背景颜色。
答案 0 :(得分:0)
您必须覆盖代理中的paint(self, painter, option, index)
函数才能更改项目的绘制方式。
例如:
class MyDelegate(QItemDelegate):
#...
def paint(self, painter, option, index):
painter.save() # You can restore the original painter later.
painter.setBrush(QBrush(Qt.red)) # Set background color.
painter.restore() # Restore the original painter.
现在怎么办?
现在您已经知道如何绘制背景,您需要获取正在绘制的项目的值,以便您可以决定颜色。为此,您可以使用paint
函数的最后一个参数index
,这是一个QModelIndex实例,您可以使用它来获取您正在寻找的值。