码迷,mamicode.com
首页 > 其他好文 > 详细

tkinter学习-- 八、事件event

时间:2020-10-31 01:54:37      阅读:25      评论:0      收藏:0      [点我收藏+]

标签:pack   image   ima   handle   port   mamicode   ESS   info   loading   

事件处理

一个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

标签:pack   image   ima   handle   port   mamicode   ESS   info   loading   

原文地址:https://www.cnblogs.com/yescarf/p/13901873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!