Hallo,
ich habe ein kleines Problem beim Anwenden von Stylesheets auf QLabel-Elemente.
Ich habe eine kleine Tabelle bestehend aus einzelnen QLabels, von denen einige den Text in Fettdruck und die übrigen den Text in Normaldruck darstellen sollen. Die Tabelle besteht schon und funktioniert auch (fast) so, wie ich es will. Aber: Ich muß die Eigenschaft "Fettdruck" oder nicht händisch per Code setzen.
Mir kam nun der Gedanke, daß gegenwärtige Lösung relativ unflexibel ist. Besser wäre es, wenn man die betreffende Eigenschaft via Stylesheet setzen könnte.
Deshalb habe ich den einzelnen Label-Elementen eine dynamische Property mitgegeben, in der hinterlegt ist, ob der Text fett werden soll oder nicht. Die zugehörige (von mir verwendete) Anweisung lautet:
desc->setProperty("textbold", TRUE); /* und die zugeh. Property setzen */
desc ist dabei ein Zeiger auf QLabel. Wenn ich die dynamischen Property-Namen und deren Werte testhalber ausgeben lasse, dann haben die Labelelemente auch die richtigen (d.h. die von mir gewünschten) Werte.
Auf das Ganze lasse ich dann folgendes Stylesheet los:
*[textbold="FALSE"] {font-family:'Arial'; font-size:12px; font-weight:'Normal'} *[textbold="TRUE"] {font-family:'Arial'; font-size:11px; font-weight:'Bold'} SummaryDetailsListe {border:1px solid black}
Das gesamte Widget ist von der Klasse SummaryDetailsListe und um dieses wird auch schön ein Rahmen gezeichnet, d.h. irgendetwas bewirkt mein Stylesheet. Nur der Text meiner QLabels wird nicht fett dargestellt. Das Stylesheet ist schon definiert, wenn ich die Labels anlege. Es hat aber auch nichts gebracht, wenn ich das Stylesheet erst dann definiere, wenn die Labels schon angelegt sind.
Kann mir vielleicht jemand einen Tipp geben, was ich falsch mache?
[Gelöst] Verwenden von Stylesheets mit QLabel
[Gelöst] Verwenden von Stylesheets mit QLabel
Zuletzt geändert von Nukleus am 19. Februar 2015 16:59, insgesamt 1-mal geändert.
Re: Verwenden von Stylesheets mit QLabel
Ich würde es so machen:
Code: Alles auswählen
desc->setProperty("textbold", true); /* und die zugeh. Property setzen */
Code: Alles auswählen
pMyContentWidget->setStyleSheet(
" .QLabel[textbold=\"true\"] {"
" font-size: 11px;"
" font-weight: bold;"
" }"
" .QLabel {"
" font-size: 12px;"
" font-weight: normal;"
" }");
Re: [Gelöst] Verwenden von Stylesheets mit QLabel
Die Ursache war das Stylsheet selbst. Die Hochkommata, in denen ich die Weight des Fonts eingeschlossen habe, waren falsch. Richtig lautet das Stylesheet
*[textbold=\"FALSE\"] {font-family:'Arial'; font-size:11px; font-weight:Normal} *[textbold=\"TRUE\"] {font-family:'Arial'; font-size:11px; font-weight:Bold} SummaryDetailsListe {border:1px solid black}
und damit tat es ohne weitere Änderung.
*[textbold=\"FALSE\"] {font-family:'Arial'; font-size:11px; font-weight:Normal} *[textbold=\"TRUE\"] {font-family:'Arial'; font-size:11px; font-weight:Bold} SummaryDetailsListe {border:1px solid black}
und damit tat es ohne weitere Änderung.