如何将按键绑定到Tkinter中的按钮

时间:2013-12-30 03:29:17

标签: python tkinter robotics

我的高级项目涉及一个我可以通过wifi控制的机器人。我正在使用Raspberry Pi和Tkinter窗口向机器人发送命令。我有我的Tkinter窗口的粗略草稿,但我想知道是否有办法将按钮按下到箭头键。这样我就可以使用箭头键来控制机器人,而不是点击每个按钮。这是我的代码,我需要添加什么?

代码:

from Tkinter import *


message = ""

class App:

    def __init__(self, master):

        frame=Frame(master)
        frame.grid()

        status = Label(master, text=message)
        status.grid(row = 0, column = 0)

        self.leftButton = Button(frame, text="<", command=self.leftTurn)
        self.leftButton.grid(row = 1, column = 1)

        self.rightButton = Button(frame, text=">", command=self.rightTurn)
        self.rightButton.grid(row = 1, column = 3)

        self.upButton = Button(frame, text="^", command=self.upTurn)
        self.upButton.grid(row = 0, column = 2)

        self.downButton = Button(frame, text="V", command=self.downTurn)
        self.downButton.grid(row=2, column = 2)

    def leftTurn(self):
        message = "Left"
        print message

    def rightTurn(self):
        message = "Right"
    print message

    def upTurn(self):
        message = "Up"
        print message

    def downTurn(self):
        message = "Down"
        print message



root = Tk()
root.geometry("640x480")
root.title("Rover ")

app = App(root)

root.mainloop()

1 个答案:

答案 0 :(得分:2)

我相信你想要的是将按键绑定到框架/功能。 Tkinter内置了自己的事件和绑定处理功能,您可以在here上阅读。

以下是您应该能够调整程序的简单示例。

from tkinter import *

root = Tk()

def yourFunction(event):
    print('left')

frame = Frame(root, width=100, height=100)

frame.bind("<Left>",yourFunction)   #Binds the "left" key to the frame and exexutes yourFunction if "left" key was pressed
frame.pack()

root.mainloop()