Ausgabe von Sonderzeichen in Tkinter

Fragen zu Tkinter.
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Ausgabe von Sonderzeichen in Tkinter

Beitragvon HWK » Mittwoch 7. Juni 2006, 21:05

Ich schreibe ein Ansi-Terminal-Programm zur Ausgabe in Tkinter. Die Programmierumgebung ist Windows ME. Obwohl der verwendete monospaced-Font "SystemPC" auch die entsprechenden Sonderzeichen zur Darstellung von Rahmen enthält, werden im Text-Widget immer die "Standard"-extended-ASCII-Zeichen (80h-FFh) dargestellt, z.B. Umlaute statt Linien. Die einfache Ausgabe als Unicode änderte nichts. Auch der Versuch, die ASCII-Zeichen in vergleichbare Unicode-Zeichen mittels des Dictionaries
ansi2unicode={ \
'\xB3':u'\u2502', '\xB4':u'\u2524', '\xB9':u'\u2563', \
'\xBA':u'\u2551', '\xBB':u'\u2557', '\xBC':u'\u255D', \
'\xBF':u'\u2510', '\xC0':u'\u2514', '\xC1':u'\u2534', \
'\xC2':u'\u252C', '\xC3':u'\u251C', '\xC4':u'\u2500', \
'\xC5':u'\u253C', '\xC8':u'\u255A', '\xC9':u'\u2554', \
'\xCA':u'\u2569', '\xCB':u'\u2566', '\xCC':u'\u2560', \
'\xCD':u'\u2550', '\xCE':u'\u256C', '\xD9':u'\u2518', \
'\xDA':u'\u250c'}
umzuwandeln, scheiterte, da die Größe der Rahmenzeichen dann nicht zu den anderen Zeichen paßt. Bei Anpassung der Breite der Unicode-Zeichen wird die Höhe zu klein. Hat jemand eine Idee, wie man Tkinter (oder liegt das Problem bereits bei Windows?) zwingen kann, die Zeichen 80h-FFh aus dem Font "SystemPC" zu verwenden?
BlackJack

Beitragvon BlackJack » Mittwoch 7. Juni 2006, 21:36

"Versteht" der verwendete Font denn Unicode? Was passiert, wenn Du einen anderen Font verwendest, der 1. die "iso10646-1" (Unicode) kennt und 2. die entsprechenden Zeichen enthält!?

(Die ``\`` am Zeilenende sind übrigens nicht nötig solange es noch geöffnete Klammern gibt.)
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Es klappt

Beitragvon HWK » Donnerstag 8. Juni 2006, 20:16

Mit dem Font "Courier New", der "iso10646-2" versteht und die Rahmenzeichen enthält, klappt die Darstellung. Ich mußte lediglich noch die Umlaute und 'ß' in das Dictionary zur Umwandlung ASCII in Unicode eingeben.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder