python - Tkinter 之间的区别和 <>
问题描述
我很难在互联网上寻找这个 - 我的搜索技能不是从头开始。我可以记住事件名称,但我总是要查找要使用哪种类型的尖括号
例如,一些 tkinter 事件与 <> 中的单词绑定
tab4e.bind("<Button-1>",f_x)
其他在<<>>,例如
nbook.bind('<<NotebookTabChanged>>', handle_tab_changed)
为什么某些绑定在 <> 而其他绑定在 <<>> 中有什么原因吗?
尽管示例是在 python 中给出的,但我还是添加了 TCL,以防 TCL 编码人员可能知道答案。
解决方案
具有一组括号的绑定是底层操作系统直接支持的内置事件。示例包括<KeyPress>
、<ButtonPress-1>
、<Configure>
等等。大多数内置事件直接与实际的物理事件相关联,例如按下鼠标按钮或键盘上的键。
带有双括号的绑定称为虚拟事件。它们不一定代表任何类型的物理事件,并且通常(尽管并非总是)对于特定的小部件是唯一的。比如<<ListboxSelect>>
只被listbox使用,<<NotebookTabChanged>>
只被ttk notebook使用,等等。
虚拟事件可以通过使用event_add
小部件方法的其他事件的组合来触发,尽管它们也可以通过调用event_generate
.
tcl/tk 手册页包括一个预定义的虚拟事件列表。
推荐阅读
- javascript - 未捕获的 RangeError:无效的字符串长度
- vba - 引用 html 元素
- javascript - 防止表单提交在没有 jQuery preventDefault 的情况下刷新页面?
- php - 如何在按钮的每一侧放置广告
- android - Android Studio - 如何调试 AAR 文件?
- c++ - C++ 中的可变参数函子可以支持命名字段吗?
- python - Python 编程路障类型错误:'pygame.Surface' 对象不可调用 如何修复
- node.js - 在发送 POST 之前与远程服务器协商最大请求正文大小
- vba - 如果 Outlook 关闭,则从 C# OOM 发送的电子邮件将保留在发件箱中,直到下一次 Outlook 启动
- android - 如何在 Android 上应用淡出“EditText”文本的遮罩?