Style Sheet mit format

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Pa5tA
User
Beiträge: 21
Registriert: Sonntag 1. August 2010, 16:37

Ich bin grade am PyQt4 lernen und bin da dieses Beispiel gestossen:

Code: Alles auswählen

self.widget.setStyleSheet("QWidget { background-color: %s }"  % color.name())
Ich will das ganze aber mit

Code: Alles auswählen

.format(color.name())
machen, das Problem ist aber, dass der StyleSheet schon {} benutzt und ich eine Fehlermeldung bekomme.

Gibt es eine Moeglichkeit das ganze ohne das veraltete % zu machen oder muss ich das iregentwie anders machen?
BlackJack

@Pa5tA: Was spricht gegen ``%``?
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

http://docs.python.org/library/string.html#formatstrings hat geschrieben: If you need to include a brace character in the literal text, it can be escaped by doubling: {{ and }}.
Also

Code: Alles auswählen

self.widget.setStyleSheet("QWidget {{ background-color: {0} }}".format(color.name()))
Pa5tA
User
Beiträge: 21
Registriert: Sonntag 1. August 2010, 16:37

Danke genau danach hab ich gesucht

@BlackJack % gilt als veraltet und wird in zukuenftigen Pythonversionen nicht mehr vorhanden sein
BlackJack

@Pa5tA: Die Doku von Python 3.x sagt nicht dass es veraltet ist. Solange da nicht "deprecated" steht, kann man das ruhig verwenden. ``lambda`` und `reduce()` waren angeblich auch mal veraltet und sollten verschwinden und sind immer noch da.
Pa5tA
User
Beiträge: 21
Registriert: Sonntag 1. August 2010, 16:37

Ah, mein Python Buch hat da anderes Behauptet aber das ist auch das Nachfolgebuch zum OpenBook(von den gleichen Autoren)...
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Pa5tA hat geschrieben:Ah, mein Python Buch hat da anderes Behauptet aber das ist auch das Nachfolgebuch zum OpenBook(von den gleichen Autoren)...
Dann solltest Du mal prüfen, ob es ähnlich schlecht ist wie das angesprochene... oder beziehst Du Dich nur auf die 3er-Version dieses Werkes?

Hier im Forum wurde schon oft genug darüber geschrieben, einfach mal SuFu anwerfen :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Pa5tA
User
Beiträge: 21
Registriert: Sonntag 1. August 2010, 16:37

Ich meine die Fassung des Buches zu Python 3. Ich hab schon mal zu dem Openbook gesucht und mehrere Kritikpunkte direkt wiedererkannt.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Pa5tA hat geschrieben:Ich meine die Fassung des Buches zu Python 3. Ich hab schon mal zu dem Openbook gesucht und mehrere Kritikpunkte direkt wiedererkannt.
Also: Weg damit! :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten