如果qtableview中不为空,如何为单元格设置颜色?

How to set color to cell if it is not empty in qtableview?

我有一个 table 有 26 行,4 列,第 4 列是唯一的 editable 并且如果单元格不为空并在单击时为单元格设置颜色并编辑任何单元格应该改变背景颜色,简而言之,当第 4 列的单元格是非空单元格时,它应该是红色,对于其他非空单元格,没有任何背景颜色所以在 PyQt5 的 QTableView 中寻找基本代码结构,基本上如何构建代码如果有人可以帮助在 PyQt5 的 QTableview 中做这件事,我已经阅读了大部分关于背景颜色的查询,但是很难理解。

一个可能的解决方案是使用委托重写 initStyleOption 方法:

class ColorDelegate(QtWidgets.QStyledItemDelegate):
    def initStyleOption(self, option, index):
        super().initStyleOption(option, index)
        if option.text.strip(): # condition
            option.backgroundBrush = QtGui.QColor("red")
delegate = ColorDelegate(tableview)
tableview.setItemDelegateForColumn(3, delegate)