Tkinter 键盘与鼠标事件绑定的陷阱

Tkinter 键盘与鼠标事件绑定的陷阱

Frame本身是一个Widget控件,在使用框架时需特别小心获得焦点的概念,当事件绑定与Frame有关时,必须在Frame获得焦点时,键盘绑定才可生效。

示例1

键盘与鼠标绑定Frame对象的应用。

from tkinter import * 
def key(event):                     # 处理键盘按a-z键事件
    print("Press " + repr(event.char) + " key")

def coordXY(event):
    frame.focus_set()
    print("Mouse position:",event.x,event.y)

root = Tk()
root.title("apidemos.com")                  # 窗口标题    

frame = Frame(root,width=100,height=100)
frame.bind("<Key>",key)
frame.bind("<Button-1>",coordXY)
frame.pack()

root.mainloop()

输出:

Tkinter 键盘与鼠标事件绑定的陷阱

这个程序在执行时必须将鼠标光标放在窗口内,同时先有鼠标单击,这时第6行同时使用frame.focus_set( )让Widget控件frame获得焦点,然后按键才可以动作。

下面是示范输出界面。

Tkinter 键盘与鼠标事件绑定的陷阱

至于在一开始时即可执行,原因是此程序是在root窗口执行绑定,在程序被启动时此窗口已经获得焦点。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程