本文实例讲述了Python GUI编程学习笔记之tkinter事件绑定操作。分享给大家供大家参考,具体如下:
首发时间:2018-03-04 19:26
from tkinter import * root=Tk() def prt(): print("hello") def func1(*args,**kwargs): print(*args,**kwargs) hello_btn=Button(root,text="hello",command=prt)#演示 hello_btn.pack() args_btn=Button(root,text="获知是否button事件默认有参数",command=func1)#获知是否有参数,结果是没有 args_btn.pack() btn1=Button(root,text="传输参数",command=lambda:func1("running"))#强制传输参数 btn1.pack() root.mainloop()
from tkinter import * root=Tk() root.geometry("200x200") text=Text(root) text.pack() def func(event): print(event) def func_release(event): print("release") #单击 # text.bind("<Button-1>",func) # root.bind("<Button-1>",func) #双击 # text.bind("<Double-Button-1>",func) # 鼠标释放 # text.bind("<ButtonRelease-1>",func_release) #鼠标移入 # text.bind("<Enter>",func) #鼠标按住移动事件 # text.bind("<B1-Motion>",func) #键盘按下事件 # text.bind("<Key>",func) #键位绑定事件 # def func3(event): # print("你按下了回车!") # text.bind("<Return>",func3) #实现的一个拖拽功能 def func4(event): # print(event) x=str(event.x_root) y=str(event.y_root) root.geometry("200x200+"+x+"+"+y) text.bind("<B1-Motion>",func4) root.mainloop()
补充:如果想要传参,可以使用lambda:
text.bind("<Button-1>",lambda event:func(event,"hello"))
from tkinter import * import tkinter.messagebox root=Tk() root.geometry("200x200") def func1(): if tkinter.messagebox.askyesno("关闭窗口","确认关闭窗口吗"): root.destroy() root.protocol("WM_DELETE_WINDOW",func1) root.mainloop()
想要了解更多,可以参考tkinter的官方文档:http://effbot.org/tkinterbook/
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#nhooo.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。