PyQt Stylesheet

Gast #6166594
Lesenswert?

Hallo Forum,

ich hoffe ich kann mein Problem beschreiben:

Mit dem QtCreator habe ich mir eine Oberfläche zusammengeklickt, unter 
anderen werden QPushButtons in Verbindung mit Stylesheets verwendet.
1
#btn_database{
2
background-color:transparent;
3
border-image: url(./ui/btn_off.png);
4

5
}
6
#btn_database:checked{
7
border-image: url(./ui/btn_on.png);
8
}


Starte ich nun das Skript, dann sehe ich auch btn_off.png auf meiner 
Oberfläche, beim Betätigen wird im Skript mittels setChecked( True ) 
"umgeschaltet" und ich sehe btn_on.png. Soweit alles prima.
Nun bin ich einen Schritt weiter gegangen und habe eine Textdatei 
geparst und je nach Inhalt dieser Datei setChecked() mit True oder False 
aufgerufen. Auch hier klappt alles wie erwartet. Das Parsen der Datei 
wurde über einen weiteren QPushButton ausgelöst.
Jetzt zum Problem: Ich habe eine QMenuBar eingefügt und mittels QAction 
verschiedene Einträge in der MenuBar platziert. Wähle ich einen Eintrag 
aus, dann wird die oben genannte Textdatei aufgerufen und geparst und 
anhand dessen wird wieder setChecked aufgerufen. Jetzt habe ich das 
Problem, wenn False übergeben wird, dann wird btn_off.png gezeichnet, 
bei True kommt kein Bild mehr. Selbst wenn ich den Button klicke, dann 
wird nur btn_off.png gezeichnet. btn_on.png scheint unsichtbar zu sein, 
obwol der QPushButton checked ist, wurde mittels Funktion isChecked() 
überprüft. Weiterhin ist interessant, wenn ich zuerst den Button 2 mal 
drücke und dann über die MenuBar die Aktion aufrufen, dann wird das Bild 
richtig gezeichnet, egal ob setChecked() True oder False aufgerufen 
wurde.

Kann einer das Problem nachvollziehen?

Danek im Voraus!

Gruß Michael
#6168536
Lesenswert?

Hm, kann man vermutlich so sehen. Ich sehe den Vorteil eher darin, dass 
ich das Aussehen von UI-Elementen in einem bestimmten Rahmen 
beeinflussen kann ohne ein 10 kLoc Style-Plugin zu schreiben ...

Wollte ich Benutzer-editierbare Stylesheets anbieten, würde ich einen 
Einstellungsdialog bauen, wo man den Pfad zu einem eigenen auswählen 
kann.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren