我使用的是python3和Tkinter,我有一个wait()
函数,等待右箭头键或左箭头键被按下,但是,它只是冻结了所有东西,我不得不强制停止程序。在
from tkinter import *
right = left = False
def setLeft(event):
global left
left = True
print('Left!')
def setRight(event):
global right
right = True
print('Right!')
def wait():
global right, left
left = right = 0
while not (left or right):
pass
print(right) #0 for left, 1 for right
left = right = 0
root = Tk()
root.bind('<Left>', setLeft)
root.bind('<Right>', setRight)
有没有办法让wait()
函数像它所期望的那样工作,或者我需要找到另一种方法吗?在
是的,您需要一种不同的方式,因为Tkinter GUI编程的事件驱动性质。当某个事件将你带到你的
wait()
函数时,它就在那里:你被困在无限循环中,你再也不能用事件走出去了!在因为@bryanoakleypointed-GUI在默认情况下一直处于等待状态,因为您到达了
mainloop()
。我认为,当用户在一个树中导航时,除了这两个(左键和右键)外,您试图抑制所有其他事件(或只是导航键)。在下面是一个小例子:
相关问题 更多 >
编程相关推荐