[Gelöst] Verwenden von Stylesheets mit QLabel
Verfasst: 19. Februar 2015 12:25
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?
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?