当按下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的主要内容,如果未能解决你的问题,请参考以下文章

当按下不同的键时如何更改精灵表中的帧。 XNA

当按下向下箭头键时,防止 LWUIT 表单的最后一个组件失去焦点

在 C++ 中只检测一个按键

按下组合键时聚焦用户控件的子控件

按下键盘中的返回键时,UITextView 不记得字体样式

觅求高手.java键盘事件.