ich habe derzeit ein kleineres Problem, bei welchem ich versuche, über ein Stylesheet Eigenschaften von items einer QTableView zu setzen.
Dabei geht es nicht um alle items der Tabelle, sondern nur um einzelne Elemente, die z.B. auf Grund von bestimmten Eigenschaften die Textfarbe rot erhalten sollen.
Wenn ich die Zeilen direkt programmiere, wie im Code-Beispiel unten dargestellt, dann funktioniert die Textfarbe natürlich. Ich würde es aber gerne über ein Stylesheet lösen.
Code: Alles auswählen
hilfsItem = new QStandardItem(); /* 6. Eintrag: Kursänderung absolut */
hilfsItem->setForeground (QBrush(QColor("black"))); /* Annahme: alles i.O. */
if(query()->value(6).toDouble() < 0.00) /* Frage: Ergebnis < 0 */
{ /* wenn ja... */
hilfsItem->setForeground (QBrush(QColor("red"))); /* wenn ja: dann rot darstellen */
}; /* Ende Frage: Ergebnis < 0, ja */
Damit ich über ein Stylesheet selektiv einzelne Komponenten ansprechen kann, muß ich denen entweder einen Objektnamen mitgeben oder eine dynamische Property. Beides setzt voraus, daß sich die Komponente von QObject ableitet und QStandardItem leitet sich nicht von QObject ab.
Ich habe gelesen, daß QTableView standardmäßig QStyledItemDelegate verwendet und letzteres leitet sich von QObject ab, verfügt also über die Methoden setProperty und setObjectName.
Ich fummle derzeit am Stylesheet und am Programm selbst herum, ohne daß ich der Lösung näher gekommen wäre. Z.B. habe ich im Code
Code: Alles auswählen
pTable->itemDelegate(pModel->indexFromItem(hilfsItem)) /* Diese Zeile ist nur ein Test */
->setProperty("redtext",true); /* setze: Roten Text */
Code: Alles auswählen
*[redtext = true] {color: red;}
Meine Frage: Geht das, was ich da will, überhaupt? Wenn ja, dann bräuchte ich Tips, für die ich sehr dankbar wäre.