使用 QT Designer 设置 QTtableWidget 标题颜色

问题描述 投票:0回答:0

首先让我说我是一般编程的新手,但刚刚开始使用 PYQt6 和 QT Designer 来构建我的用户界面。我有一个包含 180 列的 QTableWidget。我有过滤器,允许我隐藏基于“分组”的列。我想更进一步,将所有“分组”的标题设置为特定颜色,这样当滚动表格时更容易分开每个“分组”。

例子: 第 0 – 10 列是 Group1 – 为第 0 – 10 列蓝色制作标题 第 11 – 20 列是 Group2 – 制作标题第 11 – 20 列红色 如果可能的话,我想使用 QT Designer,因为我在那里创建了我的表并设置了所有列标题文本。

我试过这样的事情:

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

但是当我这样做时,它会覆盖当前的列标题文本并且实际上不会更改颜色。 我不介意在代码中这样做,但如果可能的话,我想利用 QT Designer 创建的 UI 文件作为标题文本。

我在下面找到了这个例子,它一直有效,直到我尝试在我的应用程序中使用它。所以我觉得这不是专门针对 Windows 的事情。我不知道自己在做什么。

import sys
from PyQt6 import 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()

将标题文本设置为“红色” 我该如何更改它以使其不会覆盖我的标题文本?

pyqt qt-designer qtablewidget
© www.soinside.com 2019 - 2024. All rights reserved.