栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python Tkinter:停止文本小部件标签中的事件传播

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python Tkinter:停止文本小部件标签中的事件传播

好吧,在 稍微 修改一下之后,我能够找到一个可行的解决方案。我认为问题在于标签可能没有从baseWidget继承。

我的解决方法:

  • 对标签进行单独的回调;在此处设置一个变量,以跟踪单击了哪个标签
  • 让文本小部件的事件处理程序根据此变量的内容决定要做什么

代码中的解决方法(很抱歉在

global
这里使用,但是我只是修改了我的问题的简单示例…):

#!/usr/bin/env pythontry:    from Tkinter import *    from tkMessageBox import showinfoexcept importError:    from tkinter import *    from tkinter.messagebox import showinfotag_to_handle = ''def on_click(event, widget_origin='?'):    global tag_to_handle    if tag_to_handle:        showinfo('Click', '"{}" clicked'.format(tag_to_handle))        tag_to_handle = ''    else:        showinfo('Click', '"{}  " clicked'.format(widget_origin))def on_tag_click(event, tag):    global tag_to_handle    tag_to_handle = tagroot = Tk()text = Text(root)text.pack()text.insert(CURRENT, 'Some untagged text...n')text.bind('<Button-1>', lambda e, w='textwidget': on_click(e, w))for i in range(5):    tag_name = 'tag_{}'.format(i)    text.tag_config(tag_name)    text.tag_bind(tag_name, '<Button-1>',        lambda e, w=tag_name: on_tag_click(e, w))    text.insert(CURRENT, tag_name + ' ', tag_name)root.mainloop()

我希望这对遇到相同问题的人有所帮助。

我仍然愿意接受更好的解决方案!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611119.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号