Python (3+) und Qt (5) (obwohl glücklich, Py2.7 und Qt4 Antworten zu haben!). Völlig verwirrt durch umfangreiche Dokumentation über Stile, Delegierte, Modelle und alles andere.PyQt Tabellenansicht Zeile Hintergrundfarbe basierend auf Zellenwert
Ich habe es einfach gefunden, den Hintergrund von alternativen Zeilen zu setzen, aber ich möchte den Hintergrund für Zeilen festlegen, wo eine Spalte einen bestimmten Wert (d. H. Archive == True
) entspricht.
Alternative Reihen:
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()
Ich habe ein Beispiel zeigt, gesehen, wie es through the model zu tun, aber diese spezifische Beispiel scheint einfach zu sein, um die abwechselnden Reihen Ergebnis zu replizieren, und nach ein paar Tagen einen Code starrte ich kann nicht herausfinden, wie man das übersetzt, um die Archivspalte zu überprüfen.
Auszug aus example:
elif role == Qt.BackgroundRole:
if index.row() % 2 == 0:
return QBrush(Qt.yellow)
elif role != Qt.DisplayRole:
return QVariant()
ich einem anderen example using delegates gefunden habe, kann aber zur Zeit nicht meinen Kopf um es bekommen.
Besonders kann ich immer noch nicht verstehen, wie Sie wählen würden, welche Zeilen die Änderung erhalten, und kann nicht verstehen, wie man eine einfache Hintergrundfarbe als "Option" anwendet! (Das Lesen der Dokumentation zu QStyleOptionViewItem schickt mich durch das Kaninchenloch!).
Können Sie helfen?
Perfect - Ich habe eine weitere Frage hinzugefügt wenn Sie interessiert sind. Ich habe es hier nicht als Diskussion aufgenommen, weil Sie diese Frage vollständig beantwortet haben. https://stackoverflow.com/questions/44121172/pyqt-tableview-background-color-based-on-text-value-rather-than-true-or-false – Alan