Unicode-Text auf Widget schreiben geht nicht richtig
Verfasst: Samstag 15. August 2009, 22:26
Hallo miteinander!
Ich wollte ein SuperKaramba-Widget an meine Wünsche anpassen. Leider habe ich herzlich wenig Ahnung von Python, nur etwas C-Kentnisse.
So bin ich auch schon bald auf das erste Problem gestoßen - Unicode-Text auf das Widget schreiben klappt nicht richtig.
Die Python-Datei ist in der ersten Zeile richtig deklariert:
Um Text auf das Widget zu schreiben, benutze ich folgenden Befehl:
Ascii funktioniert einwandfrei, aber bei Sonderzeichen (wie Umlauten) oder japanischem Unicode-Text schreibt er nur stattdessen nur Zeichenmüll aufs Widget.
-> a, o und u erscheinen normal, aber statt der Umlaute erhalte ich nur Zeichenmüll.
Ich bin dann auf das Forum hier gestoßen und über die Forensuche hier auf das Python Unicode Howto:
http://docs.python.org/howto/unicode.html
Daraufhin habe ich ein paar Sachen ausprobiert:
-> hier schreibt er 'aä' aufs Widget, Umlaut funktioniert also, aber den Rest schmeißt er sonderbarerweise weg
-> das gleiche hier, er schreibt 'aä' aufs Widget und schmeißt den Rest weg
-> das funktioniert gar nicht, hier hängt das Widget an der Stelle, an der er den Text drauf schreiben sollte
Ich wüßte nicht, was ich sonst noch probieren sollte...
Die Deklarierung der 'createText'-Funktion, falls ihr die braucht:
http://api.kde.org/4.2-api/kdeutils-api ... f2c87d15cd
Da mir QString nichts sagt, habe ich das auch nachgeschlagen:
http://doc.trolltech.com/4.4/qstring.html
woran liegt es dann, daß er Unicode-Text nicht richtig aufs Widget schreiben will?
Ich wollte ein SuperKaramba-Widget an meine Wünsche anpassen. Leider habe ich herzlich wenig Ahnung von Python, nur etwas C-Kentnisse.
So bin ich auch schon bald auf das erste Problem gestoßen - Unicode-Text auf das Widget schreiben klappt nicht richtig.
Die Python-Datei ist in der ersten Zeile richtig deklariert:
Code: Alles auswählen
# -*- coding: utf-8 -*-
Code: Alles auswählen
Text1=karamba.createText(widget, x, y, w, h, 'aou')
Code: Alles auswählen
Text1=karamba.createText(widget, x, y, w, h, 'aäoöuü')
Ich bin dann auf das Forum hier gestoßen und über die Forensuche hier auf das Python Unicode Howto:
http://docs.python.org/howto/unicode.html
Daraufhin habe ich ein paar Sachen ausprobiert:
Code: Alles auswählen
Text1=karamba.createText(widget, x, y, w, h, u'aäoöuü')
Code: Alles auswählen
Wtext=u'aäoöuü'
Wtext.encode('utf-8')
Text1=karamba.createText(widget, x, y, w, h, Wtext)
Code: Alles auswählen
Text1=karamba.createText(widget, x, y, w, h, unicode('aäoöuü').encode('utf-8'))
Ich wüßte nicht, was ich sonst noch probieren sollte...
Die Deklarierung der 'createText'-Funktion, falls ihr die braucht:
http://api.kde.org/4.2-api/kdeutils-api ... f2c87d15cd
Code: Alles auswählen
QObject * KarambaInterface::createText ( Karamba * k,
int x,
int y,
int width,
int height,
const QString & text = ""
)
http://doc.trolltech.com/4.4/qstring.html
Also das unterstützt Unicode...The QString class provides a Unicode character string.
woran liegt es dann, daß er Unicode-Text nicht richtig aufs Widget schreiben will?