我的高级项目涉及一个我可以通过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()
答案 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()