Python(3+)和Qt(5)(儘管很高興有Py2.7和Qt4的答案!)。 完全混淆了關於樣式,代表,模型和其他一切的大量文檔。PyQt Tableview基於單元值的行背景顏色
我發現設置交替行的背景很簡單,但我想爲一列與特定值匹配的行設置背景(即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的文檔正在發送我的兔子洞!)。
你能幫忙嗎?
完美 - 我添加了一個後續問題如果你有興趣。我沒有把它作爲一個討論,因爲你已經完全回答了這個問題。 https://stackoverflow.com/questions/44121172/pyqt-tableview-background-color-based-on-text-value-rather-than-true-or-false – Alan