PyQt Stylesheet

Gast #6166594
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
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

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.