基于数值的 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'
如何将单元格值作为整数、浮点数、布尔值...进行比较?
您必须使用 QVariant
的 value()
方法,如果需要转换。
val = QSqlQueryModel.data(self, self.index(item.row(), 0), Qt.DisplayRole)
if int(val.value()) > 102:
return QBrush(Qt.yellow)
有一个很好的例子说明如何实现
如何将 "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'
如何将单元格值作为整数、浮点数、布尔值...进行比较?
您必须使用 QVariant
的 value()
方法,如果需要转换。
val = QSqlQueryModel.data(self, self.index(item.row(), 0), Qt.DisplayRole)
if int(val.value()) > 102:
return QBrush(Qt.yellow)