[gelöst] Qt stylesheet qss laden
-
Hallo!
Ich habe ein kleines Testprogramm erstellt um mich etwas in Qt Stylesheets einzuarbeiten.
Allerdings habe ich noch ein kleines Problem:
ich hab das Programm mit der qss Datei kompiliert, was auch funktioniert. Nun ist meine Frage, wie man das machen kann, das wenn man die qss Datei ändert, die neu eingelesen wird beim nächsten Programmstart, ohne das Programm neu kompilieren zu müssen. Funktioniert das überhaupt?
Ich denke mal es muss gehen, sonst wäre das ganze Konzept ja irgendwie witzlos, denn mit den qss Dateien will man ja seinen Usern etwas an die Hand geben damit die das Programm nach ihren Wünschen gestalten können.
Nur ich finde ich dazu nicht wirklich was.
Kann mir wer helfen?
Danke.
-
Na du solltest dann die qss-Datei nicht als Resource mit in die Exe kompilieren, sondern die qss als separate Datei realisieren.
In main kannst du das dann so machen:
QApplication a(argc, argv); QFile file( a.applicationDirPath() + QDir::separator() + "meinstylesheet.qss" ); if ( file.open( QIODevice::ReadOnly | QIODevice::Text ) ) { QTextStream textstream( &file ); a.setStyleSheet( textstream.readAll() ); file.close(); }
Die meinstylesheet.qss muss dann im gleichen Ordner wie deine EXE liegen.
-
Danke für deine Antwort.
Bei mir sieht es im MOment noch so aus:
QFile file(":/Pfad/Datei.qss"); file.open(QFile::ReadOnly); app.setStyleSheet(file.readAll());
Oder war es nur der Fehler die dDatei mitzukompilieren?
Ich probiere jetzt mal deins aus.
EDIT:
ich hab das jetzt mal ausprobiert, aber das stylesheet wird so nicht geladen.
Es gibt zwar keinen Fehler, aber es passiert auch nichts.
EDIT2:
hab den Fehler gefunden. Der Pfad war falsch.
Funktioniert jetzt so wie es soll.