鱼C论坛

 找回密码
 立即注册
查看: 2970|回复: 2

[已解决]我有点不太理解event.widget["text"] 这个是什么意思

[复制链接]
发表于 2020-8-1 21:14:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from tkinter import *
class App:
    def __init__(self,master):
        self.master = master
        self.initWidgets()
    def initWidgets(self):
        self.show = Label(self.master,width=30,bg="white",font=("times",30))
        self.show.pack()
        bn = Button(self.master,text="单击我或双击我")
        bn.pack(fill=BOTH,expand=YES)
        #为左键单击事件绑定处理方法
        bn.bind("<Button-1>",self.one)
        #为左键双击事件绑定处理方法
        bn.bind("<Double-1>",self.double)
    def one(self,event):
        self.show["text"] ="左键单击:%s" % event.widget["text"]
    def double(self,event):
        print("左键双击,退出程序:",event.widget["text"])
        import sys;sys.exit()
root =Tk()
root.title("简单绑定")
App(root)
root.mainloop()

现在我不懂一个是event 有什么用  而event.widget 这个是用来做什么的?  麻烦解答一下。
最佳答案
2020-8-1 21:28:28
本帖最后由 Twilight6 于 2020-8-1 21:30 编辑



event  是触发事件时候自动传入的一个参数,就是指代这个事件,而这个参数里面包括你点击了什么键位,鼠标位置啥的各种参数

widget 就是指被触发事件的组件名,而 widget['text'] 就是将这个组件的 text 参数读取出来

比如说你这里设置的触发事件时候组件名位 Button ,所以这里 widget['text'] 就是读取 Button 里面的  text 参数的值

所以这里的 event.widget 就是获取触发事件的组件名,然后 ['text'] 就是读取该组件的 text 的值

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-1 21:28:28 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-8-1 21:30 编辑



event  是触发事件时候自动传入的一个参数,就是指代这个事件,而这个参数里面包括你点击了什么键位,鼠标位置啥的各种参数

widget 就是指被触发事件的组件名,而 widget['text'] 就是将这个组件的 text 参数读取出来

比如说你这里设置的触发事件时候组件名位 Button ,所以这里 widget['text'] 就是读取 Button 里面的  text 参数的值

所以这里的 event.widget 就是获取触发事件的组件名,然后 ['text'] 就是读取该组件的 text 的值

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-1 21:29:20 | 显示全部楼层
通过bind绑定的处理函数,会有一个参数event就是事件本身,具体到你这个程序就是"<Button-1>"或者"<Double-1>",event.widget就是通过事件获取改时间所对应的控件,在你的程序中也就是获取控件bn,然后就可以通过["属性"]来获取控件的相关属性了,例如你的程序中获取的是按钮bn的text属性
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 10:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表