python-3.x 在tkinter的输入窗口小部件中键入时无法检测到某些字母

rnmwe5a2  于 2022-12-14  发布在  Python
关注(0)|答案(1)|浏览(116)

显然,有些字母不能在Tk的输入小部件中键入,如Tk.TextTk.Entry
当我尝试输入一些土耳其字母时,它们无法被检测到。但是当我第一次在记事本中输入,然后复制粘贴到小部件中,或者使用insert属性时,它不知何故工作了。我尝试了各种字体系列,但结果相同。是什么导致了这个问题,有什么方法可以解决这个问题?

root = Tk()

entry = Entry(root, width=60, font=('Comic Sans MS', 15))
entry.pack(pady=50, padx=50)
entry.insert("1", "şşşşşŞŞŞŞŞııııığğğğğĞĞĞĞĞİİİİİ")

textbox = Text(root, font=('Comic Sans MS', 10))
textbox.pack(pady=50, padx=50)
textbox.insert("1.0", "şşşşş\nŞŞŞŞŞ\nııııı\nğğğğğ\nĞĞĞĞĞ\nİİİİİ")

root.mainloop()

u3r8eeie

u3r8eeie1#

我通过编写一个实时字母替换函数来解决这个问题。

def replace_chars(self):
    input_word = entry.get()
    final_ver = input_word
    for i, l in enumerate(input_word):
        try:
            subst_letter = l.encode(encoding="iso8859_10").decode(encoding="iso8859_9")
            final_ver = final_ver[:i] + subst_letter + final_ver[i+1:]
        except:
            continue
    entry.delete(0, END)
    entry.insert(0, final_ver)
entry = Entry(root)
entry.pack()
entry.bind('<KeyRelease>', replace_chars)

相关问题