darstellung von ° in label

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
malikno
User
Beiträge: 26
Registriert: Sonntag 10. April 2011, 21:47

Hallo

Kurze Frage:

Wie kann ich zum Beispiel in einem Label mit der Qt Methode ... .setText( ... ) das sonderzeichen "°" im Label darstellen. Die normale Eingabe "°" liefert mir irgendein Sonderzeichen davor in der Anzeige --> A°

kann mir jemand helfen.

lg
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Du solltest vielleicht ° als Unicode-String übergeben und schauen ob das besser funktioniert.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
malikno
User
Beiträge: 26
Registriert: Sonntag 10. April 2011, 21:47

Hallo

Ich habe folgendes probiert:

Code: Alles auswählen

print "%s"    %unicode("°")

Die Ausgabe lautet:
°

Die setText Methode liefert die gleiche Anzeige.

Hättest du besseren Vorschlag?

lg
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mein Vorschlag wäre eher ``.setText(u"°")`` statt die komischen Verrenkungen und impliziten Konvertierereinen, die du da machst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
malikno
User
Beiträge: 26
Registriert: Sonntag 10. April 2011, 21:47

Danke,
das funktioniert!
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

malikno hat geschrieben:

Code: Alles auswählen

print "%s"    %unicode("°")
Die Ausgabe lautet:
°
Da das Zeichen ° nicht im ASCII-Zeichensatz enthalten ist muss man es passend dekodieren.

Code: Alles auswählen

print u'%s' %('°'.decode('iso-8859-1'))
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Und für die print-Ausgabe wieder enkodieren. Aber ich finds total furchtbar für sowas String-Formatting und irgendwelche deocode/encode-Sachen zu nutzen. Dafür gibt es Unicode-Literale, dafür gibt es das Encoding-Cookie, das man genau das eben nicht mehr machen muss. Wenn man auf Literalen encode oder decode aufruft macht man (meist/oft) was falsch.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten