事件键盘在tkinter中不起作用

时间:2017-07-03 20:05:45

标签: python tkinter

我不知道为什么该事件不适用于我的脚本。 这似乎合乎逻辑,但我不知道它为什么不去指定的功能。 这是我的剧本

from tkinter import *


root = Tk()

start = Label(root, text="press 's' to start the game.")
start.pack()
quitGame = Label(root, text="press 'q' to quit the game.")
quitGame.pack()

def start(event):
    if event.char == 's':
        print("Start")

def exit(event):
    if event.char == 'q':
        root.quit


frame = Frame(root, width=800, height=600)
root.bind('<Key>', start)
root.bind('<Key>', exit)
frame.pack()

root.mainloop()

1 个答案:

答案 0 :(得分:2)

当您致电bind时,您还 un 绑定该事件的所有其他功能。有一种方法可以绑定多个函数,但在您的情况下,最好将您的函数合并为一个函数。

import tkinter as tk

root = tk.Tk()

start = tk.Label(root, text="press 's' to start the game.")
start.pack()
quitGame = tk.Label(root, text="press 'q' to quit the game.")
quitGame.pack()

def key_pressed(event):
    if event.char == 's':
        print("Start")
    if event.char == 'q':
        root.quit()

frame = tk.Frame(root, width=800, height=600)
root.bind('<Key>', key_pressed)
frame.pack()

root.mainloop()

另外,尽量避免使用通配符导入;它们只会导致令人困惑的代码和错误。