Tkinter TextウィジェットでKeyReleaseイベントを使用しようとすると、event.charに小文字が表示されることがありますが、テキストウィジェットには大文字が表示されます。これは私が軽くすばやくシフトボタンを押してから文字を押すと発生します。 Tkinter TextウィジェットのKeyReleaseイベントを使って、正確に入力された文字を確実に取得するにはどうすればよいですか?Tkinter KeyRelease Eventを作成するには、一貫して大文字を使用しますか?
from Tkinter import *
class App:
def __init__(self):
# create application window
self.root = Tk()
# add frame to contain widgets
frame = Frame(self.root, width=768, height=576,
padx=20, pady=20, bg="lightgrey")
frame.pack()
# add text widget to contain text typed by the user
self.text = Text(frame, name="typedText", bd="5", wrap=WORD, relief=FLAT)
self.text.bind("<KeyRelease>", self.printKey)
self.text.pack(fill=X)
"""
printKey sometimes prints lowercase letters to the console,
but upper case letters in the text widget,
especially when I lightly and quickly press Shift and then some letter
on my MacBook Pro keyboard
"""
def printKey(self, event):
print event.char
def start(self):
self.root.mainloop()
def main():
a = App()
a.start()
if __name__ == "__main__":
sys.exit(main())