在尝试将umlaut-key(äöü)绑定到Python 3中的Tkinter窗口时遇到问题。
Tkinter打印输出的错误消息基本上是:
Traceback (most recent call last):
self.tk.bind("Ä", self.take_white_ippon)
_tkinter.TclError: bad ASCII character 0x84
你可以试试这个MCVE:
from tkinter import *
tk = Tk()
def doSomething(e=None):
print("doSomething()")
# The next line is basically ignored
tk.bind("ä", doSomething)
# This line will throw the error message
tk.bind("<ä>", doSomething)
tk.mainloop()
您可以尝试 Alt + 0228 输入ä
(使用数字键盘)。
我还没有找到关于此主题的任何其他SO / Google网页。我只发现了一些关于Tkinter和非ascii字符的一般问题的问题。
答案 0 :(得分:2)
这是一个可以帮助您的程序:
import tkinter as tk
root = tk.Tk()
tk.Label(text="you pushed:").pack()
var = tk.StringVar()
tk.Entry(textvariable=var).pack()
root.bind('<Key>', lambda e: var.set(repr(e.keysym)))
root.mainloop()
如果您运行并输入ä,您将看到'adiaeresis',这是您需要绑定的内容:
tk.bind('<adiaeresis>', doSomething)