我有一个继承自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_()