Python Tkinter Canvas fail to bind keyboard

前端 未结 3 1965
刺人心
刺人心 2020-12-04 01:22

I\'ve been running a small script like this

from Tkinter import *
root = Tk()
def callback(event):
    print \"callback\"
w = Canvas(root, width=300, height         


        
3条回答
  •  不思量自难忘°
    2020-12-04 02:04

    Key bindings only fire when the widget with the keyboard focus gets a key event. The canvas by default does not get keyboard focus. You can give it focus with the focus_set method. Typically you would do this in a binding on the mouse button.

    Add the following binding to your code, then click in the canvas and your key bindings will start to work:

    w.bind("<1>", lambda event: w.focus_set())
    

提交回复
热议问题