При наборе русского текста на КПК (на PC работает нормально) в поле Text отображаются кракозябры из двух байт. Выяснил, что это Unicode. Пришлось написать такое:
# -*- coding: UTF-8 -*-
from Tkinter import *
import os
def key_press(event):
print event.keysym
print event.keycode
if len(event.char)>1:
txt.insert(INSERT, event.char.decode('UTF-16'))
txt.configure(state=DISABLED)
def key_release(event):
txt.configure(state=NORMAL)
tk = Tk()
txt = Text(tk,height=5,width=10,font='Arial 12',wrap=WORD)
txt.pack()
if os.name=="ce":
txt.bind("<KeyPress>", key_press)
txt.bind("<KeyRelease>", key_release)
message = u"привет"
txt.insert('1.0', message)
tk.mainloop()
Вопрос: нет ли более простого и элегантного решения этой проблемы? Может кто встречался с этим раньше?