gpt4 book ai didi

python - PyQt 中 QTableWidget 的各个水平标题的颜色

转载 作者:行者123 更新时间:2023-11-30 22:58:27 24 4
gpt4 key购买 nike

我有一个 QTableWidget,我想根据某些标准为各个水平标题项着色。

到目前为止我想到的:

stylesheet = "::section{Background-color:rgb(190,1,1)}"
self.ui.Table.horizontalHeader().setStyleSheet(stylesheet)

这有效,但是它同时为所有标题着色,而我无法更改单个标题的颜色。因此,下一个合乎逻辑的步骤是:

self.ui.Table.horizontalHeaderItem(0).setStyleSheet(stylesheet) 

这不起作用,因为单个标题项不支持设置样式表。

最后:

self.ui.Table.horizontalHeaderItem(0).setBackgroundColor(QtCore.Qt.red)

这运行得很好,没有 python 提示,但是它似乎对背景颜色没有任何影响。

我已经看过 this answer ,这就是我第一次尝试的动力。然而,它只处理使用相同颜色的所有标题。

如何单独为标题着色?

最佳答案

您可以使用以下方法来做到这一点:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets

class MyFrame(QtWidgets.QFrame):
def __init__(self, parent=None,initials=None):
QtWidgets.QFrame.__init__(self, parent)
self.table = QtWidgets.QTableWidget(5,3,self)
self.table.move(30,30)
self.table.resize(400,300)

item1 = QtWidgets.QTableWidgetItem('red')
item1.setBackground(QtGui.QColor(255, 0, 0))
self.table.setHorizontalHeaderItem(0,item1)

item2 = QtWidgets.QTableWidgetItem('green')
item2.setBackground(QtGui.QColor(0, 255, 0))
self.table.setHorizontalHeaderItem(1,item2)

item3 = QtWidgets.QTableWidgetItem('blue')
item3.setBackground(QtGui.QColor(0, 0, 255))
self.table.setHorizontalHeaderItem(2,item3)

if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
app.setStyle(QtWidgets.QStyleFactory.create('Fusion')) # won't work on windows style.
Frame = MyFrame(None)
Frame.resize(500,400)
Frame.show()
app.exec_()

,这将导致:

Different colors for header items in QTableWidget

您必须考虑的一件事是 Windows 风格不允许您这样做。这就是我必须将样式更改为 Fusion 的原因。

关于python - PyQt 中 QTableWidget 的各个水平标题的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36196988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com