【发布时间】:2017-10-21 10:03:57
【问题描述】:
我正在使用 Python3+ 和 Qt5(虽然很高兴有 Py2.7 和 Qt4 的答案!)。 被关于样式、委托、模型和其他所有内容的大量文档完全搞糊涂了。
我发现设置交替行的背景很简单,但我想为一列匹配特定值(即Archive == True)的行设置背景。
交替行:
self.plainModel = QSqlQueryModel()
self.create_model()
self.linksTable.setModel(self.plainModel)
self.linksTable.setAlternatingRowColors(True)
self.linksTable.setStyleSheet("alternate-background-color: Lightgrey;background-color: white;")
self.linksTable.resizeColumnsToContents()
我已经看到了一个示例,展示了如何做到这一点through the model,但这个具体的示例似乎只是复制了备用行的结果,并且在盯着代码几天后,我无法弄清楚如何将其转换为检查存档列。
从example中提取:
elif role == Qt.BackgroundRole:
if index.row() % 2 == 0:
return QBrush(Qt.yellow)
elif role != Qt.DisplayRole:
return QVariant()
我找到了另一个example using delegates,但目前无法理解。
尤其是我仍然无法理解您将如何选择哪些行获得更改,并且无法理解如何将简单的背景颜色应用为“选项”! (阅读 QStyleOptionViewItem 上的文档让我陷入了困境!)。
你能帮忙吗?
【问题讨论】:
标签: python qt pyqt pyqt4 pyqt5