Python 是否可以更改QTableWidget行标签的颜色?
我有一个从QTableWidget继承的类,我想知道是否可以为表中的每一行更改行标签的颜色 我不想更改任何单元格或列标题的颜色 谢谢:) 另外,我希望每行标签都有不同的颜色。其动机是我可以使用这些颜色作为键/图例,因为表中的每一行对应于绘图上不同颜色的线 编辑:图示我所指表格元素的图像:Python 是否可以更改QTableWidget行标签的颜色?,python,qt,qt4,pyqt,pyqt4,Python,Qt,Qt4,Pyqt,Pyqt4,我有一个从QTableWidget继承的类,我想知道是否可以为表中的每一行更改行标签的颜色 我不想更改任何单元格或列标题的颜色 谢谢:) 另外,我希望每行标签都有不同的颜色。其动机是我可以使用这些颜色作为键/图例,因为表中的每一行对应于绘图上不同颜色的线 编辑:图示我所指表格元素的图像: 是的,您似乎可以这样做,使用通过的设置前景,我相信您可以使用QBrush的设置颜色功能为其传递颜色。QTableWidgetItem文档有很多基于美学的函数,因此它看起来就像您正在寻找的一样,特别是因为它似乎能
是的,您似乎可以这样做,使用通过的设置前景,我相信您可以使用QBrush的设置颜色功能为其传递颜色。QTableWidgetItem文档有很多基于美学的函数,因此它看起来就像您正在寻找的一样,特别是因为它似乎能够针对表上的特定单元格/项目。如果您想更深入地了解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_()
我认为此功能与更改实际单元格的属性有关,而不是与行标签有关。为了澄清我的意思,我在问题中添加了一个图像。感谢您的时间,但目前我认为这并不能解决我的问题。实现自定义
QStyledItemDelegate
,可能很容易做到,如果您将QTableWidge
t替换为QTableView
+QStandardItemModel
。感谢您的回复-不幸的是,我想我现在只能使用QTableWidget了。不过,很高兴知道未来会发生什么!我仍然不建议您使用QTableWidget
,因为它有太多纯粹的定制小部件。