可以更改QTableWidget行标签的颜色吗?

我有一个继承自QTableWidget的类,我想知道是否可以更改表中每一行的行标签颜色?

我不想更改任何单元格或列标题的颜色.

谢谢 :)

附:我希望每行标签具有不同的颜色.这样做的动机是,我可以将这些颜色用作键/图例,因为表中的每一行都对应于绘图上不同颜色的线.

编辑:图片说明了我所引用的表的元素:

解决方法:

是的,这是可能的,但只有一点技巧.使用QTableWidget的setVerticalHeaderItem,您甚至可以为标题行设置QTableWidgetItem,并且可以在其中为每行定义背景画笔.但是,大多数时候背景会被忽略,因为实际的QStyle会覆盖它.将垂直标题小部件的样式设置为不改变背景的样式,可达到目的.

例:

from PySide import QtGui

app = QtGui.QApplication([])

table = QtGui.QTableWidget(4, 2)
table.show()

for i in range(0, 4):
    item = QtGui.QTableWidgetItem('Text')
    item.setBackground(QtGui.QColor(i*50, i*30, 200-i*40))
    table.setVerticalHeaderItem(i, item)

# print(QtGui.QStyleFactory.keys())
table.verticalHeader().setStyle(QtGui.QStyleFactory.create('CleanLooks'))

app.exec_()
上一篇:python-将gif从数据加载到QMovie对象中(无文件)


下一篇:win10UWP序列化