【问题标题】:Can you set a specific colour for whole QTableWidget?你可以为整个 QTableWidget 设置特定的颜色吗?
【发布时间】:2021-06-25 09:39:54
【问题描述】:

好的,我们可以为包含数据的单元格设置特定的背景颜色:

self.Table.item(0,i).setBackground(QColor(255,128,128)) 

是否可以在启动时或操作期间将整个表设置为特定颜色?开始时它不包含任何数据,因此单元格是空的。

【问题讨论】:

    标签: python pyqt qtablewidget


    【解决方案1】:

    如果您希望所有单元格都具有该背景颜色,那么您可以使用委托:

    class Delegate(QStyledItemDelegate):
        def initStyleOption(self, option, index):
            super().initStyleOption(option, index)
            if not index.data(Qt.BackgroundRole):
                option.backgroundBrush = QBrush(QColor(255, 128, 128))
    
    delegate = Delegate(self.Table)
    self.Table.setItemDelegate(delegate)
    

    【讨论】:

    • 为我的问题提供了解决方案,但出现了一个新问题:现在无法覆盖单元格颜色。我该如何解决?所以一开始它的颜色是 (255, 128, 128),但是当程序中出现一些 if 语句时,它需要更改为 (150,150,150)。
    • 是的,就是这样。我还有一个小问题:你知道如何将变量评估为 QColors: vGray = (150,150,150)。我不能像这样在 QBrush(QColor(255, 128, 128)) 之后放置灰色 QBrush(QColor(vGray))
    • @wecandothis 使用QBrush(QColor(*vGray))
    • @wecandothis 阅读 docs.python.org/3/tutorial/…
    • 嘿,你能看看我关于 pyqt 的新问题吗?是否可以按照您在此处回答的精神为特定列分配特定颜色?
    猜你喜欢
    • 2022-01-09
    • 2021-04-26
    • 1970-01-01
    • 2022-10-14
    • 2021-10-26
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多