tkinter学习-- 八事件event
Posted yescarf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tkinter学习-- 八事件event相关的知识,希望对你有一定的参考价值。
事件处理
一个GUI应用整个生命周期都处在一个消息循环(eventloop)中
它等待事件的发生,并作出相应的处理
Tkinter提供了用以处理相关事件的机制.处理函数可被绑定给各个控件的各种事件
widget.bind(event,handler)
如果相关事件发生,handler函数会被触发,事件对象event会传递给handler函数
from tkinter import * root = Tk();root.geometry("530x300") c1 = Canvas(root,width=200,height=200,bg="green") c1.pack() def mouseTest(event): print("鼠标左键单击位置(相对于父容器):{0},{1}".format(event.x,event.y)) print("鼠标左键单击位置(相对于屏幕):{0},{1}".format(event.x_root,event.y_root)) print("事件绑定的组件:{0}".format(event.widget)) def testDrag(event): c1.create_oval(event.x,event.y,event.x+1,event.y+1) def keyboardTest(event): print("键的 keycode:{0},键的 char:{1},键的 keysym:{2}".format(event.keycode,event.char,event.keysym)) def press_a_test(event): print("press a") def release_a_test(event): print("release a") c1.bind("<Button-1>",mouseTest) c1.bind("<B1-Motion>",testDrag) root.bind("<KeyPress>",keyboardTest) root.bind("<KeyPress-a>",press_a_test) #只针对小写的a,大写的 A 不管用 root.bind("<KeyRelease-a>",release_a_test) root.mainloop()
以上是关于tkinter学习-- 八事件event的主要内容,如果未能解决你的问题,请参考以下文章