基于数值的 PyQt Tableview 背景颜色?

PyQt Tableview background color based on numeric values?

有一个很好的例子说明如何实现 因为不允许我发表评论,所以我必须打开一个新问题。

如何将 "id" 列作为整数进行比较?例如如果 (id>103) 和 (id<106)?

取自上面 link 的代码行:

if QSqlQueryModel.data(self, self.index(item.row(), 2), Qt.DisplayRole) == "Young":

似乎对文本工作正常,但是

if QSqlQueryModel.data(self, self.index(item.row(), 0), Qt.DisplayRole) > "103":

将作为文本而不是整数进行比较,并且

if QSqlQueryModel.data(self, self.index(item.row(), 0), Qt.DisplayRole).toInt() > 103:

给出一个 AttributeError: 'QVariant' 对象没有属性 'toInt'

如何将单元格值作为整数、浮点数、布尔值...进行比较?

您必须使用 QVariantvalue() 方法,如果需要转换。

val = QSqlQueryModel.data(self, self.index(item.row(), 0), Qt.DisplayRole)
if int(val.value()) > 102:
    return QBrush(Qt.yellow)