Qt globales Stylesheet wird geladen?

8

Wie kann ich ein Stylesheet (.qss style resource) global mit Qt laden?

Ich versuche, die Dinge ein wenig effizienter zu machen als:

%Vor%

Ich dachte, das folgende würde funktionieren, wenn QLineEdit einmal für alle QLineEdit-Widgets geladen würde:

qss-Datei:

%Vor%

cpp-Datei:

%Vor%

Vielleicht ist das richtig und ich mache etwas anderes falsch?

    
Brandon Clark 27.07.2012, 05:26
quelle

2 Antworten

6

Sie haben QStyle * QApplication :: setStyle (const QString & amp; style) aufgerufen , die ein QStyle-Objekt für style von der QStyleFactory anfordert.

Stattdessen sollten Sie void QApplication :: setStyleSheet (const QString & amp; Blatt) , das das Anwendungs-Stylesheet festlegt.

    
Bill 27.07.2012, 07:27
quelle
4

Der obige Versuch ist korrekte Syntax, aber es gibt Gründe, warum es nicht funktioniert.

Mögliche Probleme:

  1. Quelldatei (.qss) wird nicht abgerufen

  2. Falsches oberes Widget, das ausgewählt wurde, um eine Kaskade anzuwenden.

  3. Syntax des .qss (CSS) -Codes.

Grund Ich musste meine Frage oben stellen, habe ich zwei dieser drei Probleme. Ich musste zuerst auf den korrekten Speicherort der Dateien zeigen und dann musste ich mich direkt an QWidget wenden.

%Vor%

@Bill Vielen Dank für Ihre Hilfe. Er wies darauf hin, dass ich .setStyle und nicht .setStyleSheet gepostet habe. Der obige Beispielcode spiegelt das nicht mehr wider, aber wenn ich das nicht ändere, hätte nichts getan, was ich getan hätte.

    
Brandon Clark 27.07.2012 14:29
quelle

Tags und Links