2017-01-03 2 views
-1

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?)

Antwort

0

Wenn kein Sheet Qt verwendet einen Stil festgelegt, die den Stil des OS übereinstimmt. Wenn Sie versuchen, das Stylesheet einer einzelnen Eigenschaft zu ändern, wird das gesamte Stylesheet des Steuerelements durch ein Standard-Stylesheet ersetzt. Ich bin mir nicht sicher, ob das Standard-Stylesheet extrahiert werden kann. Wahrscheinlich kann ein benutzerdefinierter Delegierter mit paint() Funktion neu implementiert den Trick tun.

+0

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

+1

@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. –

Verwandte Themen