在Tkinter中等待按键输入

0 投票
1 回答
3266 浏览
提问于 2025-04-17 19:30

问题

我正在写一个简单的计时器代码。在每进行三次计时后,界面会被清空,然后在同一个窗口中开始一个新的计时会话。计时的结果会写入一个文件。不过在清空屏幕之前,我希望用户能先看到所用的时间,然后再清屏。

目标

等待用户按下一个键,这样我们就可以清除当前的界面,并在之后显示一些新的文字。

我检查过的内容

http://www.daniweb.com/software-development/python/code/216830/tkinter-keypress-event-python

这个链接的内容对我帮助不大,因为按键的内容被打印出来了。

条件

我不在乎按下的是什么键,除非是以下这些:

['e','s','r']

如果按下的键不是这些,那么我就可以继续清空屏幕。这些键在程序中有其他特定的用途。

帮我想个办法来实现这个功能。

1 个回答

7

你需要在 "<Key>" 上绑定一个事件处理器。

def handler(event):
    if event.char in ('e','s','r'):
       return #Don't want to handle this keypress
    #code to clear-screen, etc.

your_frame.bind('<Key>',handler)

根据你的应用需求,你也可以选择使用:

your_frame.bind_all('<Key>',handler)

参考资料

撰写回答