Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否可以更改QTableWidget行标签的颜色?_Python_Qt_Qt4_Pyqt_Pyqt4 - Fatal编程技术网

Python 是否可以更改QTableWidget行标签的颜色?

Python 是否可以更改QTableWidget行标签的颜色?,python,qt,qt4,pyqt,pyqt4,Python,Qt,Qt4,Pyqt,Pyqt4,我有一个从QTableWidget继承的类,我想知道是否可以为表中的每一行更改行标签的颜色 我不想更改任何单元格或列标题的颜色 谢谢:) 另外,我希望每行标签都有不同的颜色。其动机是我可以使用这些颜色作为键/图例,因为表中的每一行对应于绘图上不同颜色的线 编辑:图示我所指表格元素的图像: 是的,您似乎可以这样做,使用通过的设置前景,我相信您可以使用QBrush的设置颜色功能为其传递颜色。QTableWidgetItem文档有很多基于美学的函数,因此它看起来就像您正在寻找的一样,特别是因为它似乎能

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

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

谢谢:)

另外,我希望每行标签都有不同的颜色。其动机是我可以使用这些颜色作为键/图例,因为表中的每一行对应于绘图上不同颜色的线

编辑:图示我所指表格元素的图像:


是的,您似乎可以这样做,使用通过的设置前景,我相信您可以使用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
,因为它有太多纯粹的定制小部件。