Ich versuche, vertikale Linien in einem QTreeView zu erstellen; anstatt Linien Malerei über, wie von einigen Antworten vorgeschlagen, dass ich wie so den rechten Rand der Zellen in der Strukturansicht ändern, um einen Stylesheet bin mit:Festlegen einer einzelnen Stylesheet-Eigenschaft in Qt
ui->tripsTreeView->setStyleSheet ("QTreeView::item:!last { border-right: 0.5px solid lightgray ;}");
Leider setzen diese alle andere Stylesheet-Eigenschaften auf der treeview, so dass es unbrauchbar (Weiß auf weißem Text, das Erweiterungsdreieck erhält einen blauen Hintergrund, benutzerdefinierte Hintergrundfarben verschwinden usw.).
Fragen:
- Hat jemand ein Stylesheet für eine einzelne Eigenschaft in Qt setzen verwaltet?
- Oder einen Weg gefunden, das aktuelle angewandte Stylesheet zu extrahieren? Ich würde dann eine Suche-und-ersetzen, um die richtige Grenze hinzufügen/setzen. Leider nur
ui->tripsTreeView->styleSheet()
ein leerer String zurück (was bedeutet es das deault Sheet verwendet, aber was zum Teufel ist der Standard-Stylesheet?)
Ich weiß, dass ich das tun kann, aber ich finde es ziemlich unelegant. Ich bin an CSS in Browsern gewöhnt, die wie erwartet funktionieren. – JvO
@JvO Es gibt keine Möglichkeit, Stylesheets mit nativen Styles zu interoperieren, weil native Styles nicht wirklich leicht modifizierbar sind. In Qt können Sie entweder einen vorhandenen Stil verwenden oder Sie müssen ein * complete * Stylesheet für ein Widget einrichten, da gibt es kein Dazwischen. Sobald Sie Stylesheets anwenden, können sie den Plattformstil nicht beeinflussen. Der Plattformstil muss also wegfallen. –