当按下umlaut键时,Python Tkinter触发keyevent
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当按下umlaut键时,Python Tkinter触发keyevent相关的知识,希望对你有一定的参考价值。
尝试将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字符的一般问题的问题。
答案
这是一个可以帮助您的程序:
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)
以上是关于当按下umlaut键时,Python Tkinter触发keyevent的主要内容,如果未能解决你的问题,请参考以下文章