如何在整个代码中使用按键事件作为变量? (Python,Mac)

时间:2013-07-11 21:00:25

标签: python tkinter keypress

我是Python的新手,我正在尝试编写一个代码,可以随时接受用户输入(以按键的形式),并且根据用户按某些键时的条件,条件会发生变化。这就是我到目前为止所做的:

import Tkinter as tk
import time

timeout = time.time() + 30

def keypress(event):
    global alive
    if event.keysym == 'Escape':
        alive = False

    x = event.char

    if x == "l":
        print("hello")
    elif x == "s":
        print("no")
    elif x == "r":
        print("maybe")
    elif x == "g":
        print("bye")
    else:
        print(x)


root = tk.Tk()

print("Press a key (Escape key to exit):")

root.bind_all('<Key>', keypress)

global alive
alive = True


while alive:

    start = time.time()
    if time.time() > timeout:
        print "Game Over" 
        break

 # do stuff here, this is in my main loop where I am trying to put the 'if' statements

    root.update()

此代码接受某些按键,并根据按键打印出相应的行。 while循环允许在“Game Over”之前发生一段时间。我正在尝试做的是使用按键作为输入在我的while循环中设置if语句。例如(某些内容):

if x == 'l' and sound == True:
    print "bla blabla"
    sound == False
elif x == 'l' and sound == False:
    print "blahblahblah"
    sound == True

问题是我不断收到一条错误消息,上面写着'x未定义',或者是这些行中的某些内容。请帮忙! 另外,我正在使用Mac。

1 个答案:

答案 0 :(得分:0)

变量xkeypress()函数中定义,在该函数之外不可用。因此,您的if x == 1语句引发了错误。