Wo befindet sich das Bild, das Sie verwenden möchten?
Haben Sie es als resource Ihrer Anwendung?
Wenn Sie ein Bild verwenden möchten, das Teil Ihrer Ressourcen ist, sollten Sie eine Ressourcendatei (*.qrc
) in Ihrem Projekt haben.
<RCC>
<qresource prefix="/images">
<file alias="sunset.jpg">sunset.jpg</file>
</qresource>
</RCC>
Dann Sie diesen Code im Konstruktor Ihrer QMainWindow
schreiben konnte: Diese Datei so etwas wie dieses enthalten sollte
setStyleSheet("background-image: url(:/images/sunset.jpg);");
Wenn Sie die Qt resource system nicht verwenden möchten, können Sie einfach setzen Sie den Pfad zu Ihrem Bild auf Ihrer Festplatte:
setStyleSheet("background-image: url(res/images/sunset.jpg);");
obwohl Seien Sie vorsichtig, wenn Sie einen relativen Pfad verwenden: Qt wird von der aktuellen Position starten, die möglicherweise Änderung, besonders wenn Sie mit Qt Creator entwickeln.
Mit Qt Creator, wenn Sie Ihre App im Debug-Modus ausführen, ist der aktuelle Pfad in debug/
. Wenn Sie Ihre App im Freigabemodus ausführen, befindet sich der aktuelle Pfad in release/
(es sei denn, Sie haben die Einstellungen geändert).
danke für die info :). Der Grund, warum ich eine separate QSS-Datei haben möchte, liegt darin, dass die Benutzer in der Lage sein sollen, die Anwendung anzupassen, indem sie einfach ihre eigene QSS-Datei laden. So dass, wenn in der Eingabeaufforderung ausgeführt wurde, könnte es leicht alle Stile aus der QSS-Datei anwenden, ohne den Code zu berühren ... – Owen
Das bedeutet, dass das Bild irgendwo auf der Festplatte ist. Aber wenn man den Pfad mit ':' tells Qt startet, ist das Bild eine Ressource. Haben Sie versucht, den absoluten Bildpfad in Ihr Stylesheet zu setzen? –
Ich habe versucht, eine Datei mit dem Namen 'stylesheet.qss' zu erstellen, die sich in meinem App-Ordner befindet, der etwa folgendes enthält:' QMainWindow {\t background-image: url (sunset.jpg); } '. Ich starte die App mit dem Argument '-stylesheet = stylesheet.qss' und der Hintergrund meiner App ist das Sonnenuntergang-Bild. Ich verstehe nicht, warum das nicht für dich funktioniert. –