Umlaut Problem bei QTextLine

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
stockie
User
Beiträge: 16
Registriert: Donnerstag 8. Februar 2007, 13:26

Hallo leutz,

ich hab ein Problem und zwar wenn ich eine QTextLine.text() element auslese bekomme
ich die Umlaute nicht beziehungsweise falsch angezeigt :oops: .
Wo oder wie kann ich das umwandeln, ich denke ich sollte vom bytestring in unicode versuchen oder?

Gruss

stockie
lunar

@stockie: Nun, Qt-Widgets geben durchweg echte Zeichenketten zurück, welche Du zur Ausgabe ggf. in Bytestrings umwandeln musst (und nicht umgekehrt!). Das ist alles, was man so ohne weiteres dazu sagen kann. Wir können schließlich nicht hellsehen.

Zeige also bitte Quelltext und nenne Deine Python-Version. "QTextLine.text()" gibt es im Übrigen nicht. Ich nehme an, Du sprichst von "QLineEdit.text()". Bitte stelle präzise und korrekte Fragen, nur so können wir Dir präzise und korrekte Antworten geben.
stockie
User
Beiträge: 16
Registriert: Donnerstag 8. Februar 2007, 13:26

Hallo also,

stimmt, es ist umgekehrt mit Funktion unicode kann ich den Bytestrings in unicode umwandeln hier nun der Code:

print "feld1 " + unicode(self.BinderName.text())
print "feld2 " + binderdat.toString('yyyy-mm-dd')
print "feld3 " + expirydat.toString('yyyy-mm-dd')


wenn ich aber die felder zusammenbau dann geht es nicht


sql="insert into binder(bindername,binder_dat,expiry)values("

sql=sql+"'"+unicode(self.BinderName.text())+"','"+binderdat.toString('yyyy-mm-dd')+"','"+expirydat.toString('yyyy-mm-dd')+"')"
BlackJack

@stockie: Du bekommst hier wahrscheinlich Probleme weil ein ``+`` zwischen Zeichenkette (`str`) und Unicode-Objekt (`unicode`) ein Unicode-Objekt ergibt.

Aber davon ganz abgesehen baut man solches SQL nicht als Zeichenkette selber zusammen, weil das eine Sicherheitslücke ist. Dafür benutzt man parametrisiertes SQL und das zweite Argument der `execute()`-Methode wo dann die Argumente übergeben werden. Für das Einsetzen in die Anfrage ist das Datenbankmodul zuständig. Das sorgt zum einen dafür, dass das *sicher* ist, und bei einigen Datenbanken kann es auch effizienter sein, wenn die selbe SQL-Anweisung einfach nur mit unterschiedlichen Werten mehrfach ausgeführt wird.

Qt hat darüber hinaus auch eine eigene Datanbankabstraktion. Eventuell ist die auch etwas für Dich.
stockie
User
Beiträge: 16
Registriert: Donnerstag 8. Februar 2007, 13:26

Vielen Dank für den Tip, das komische ist das bei meinem Computer läuft das ganze ohne Probleme und wenn ich das ganze dann mit pyinstaller packe
und auf einen anderen PC packe bricht er bei dieser Stelle(Zeichenkette) ab. :-(
stockie
User
Beiträge: 16
Registriert: Donnerstag 8. Februar 2007, 13:26

Du hattest Recht ich hab nur unicode genommen und str raus geholt und dann ging es :-)
Antworten