python - 如何将按键绑定(bind)到 Tkinter 中的按钮

标签 python tkinter robotics

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

代码:

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()

最佳答案

我相信你想要的是将按键绑定(bind)到框架/功能。 Tkinter 有自己的内置事件和绑定(bind)处理,您可以阅读 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()

关于python - 如何将按键绑定(bind)到 Tkinter 中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20832909/

相关文章:

python - 用 `validatecommand` 选项替换 ttk.Entry 小部件中的选定条目

c - 如何在 C 中将 while 循环更改为 for 循环?

lisp - 用 lisp 进行机器人编程?

python - 如何获取 Selenium 中悬停/弹出框的文本?

python - 使用 Tkinter 进行音频测验

python - pyobj 访问 iTunes 应用程序

python - “窗口”对象没有属性 '_tclCommands'

embedded - 如何演示嵌入式系统的示例?

Python:将 Unicode 转换为 ASCII,对于 CSV 文件没有错误

python - 根据条件Python对多行进行分组/求和