python - <event> 和 <<event>> 之间的 Tkinter 区别

标签 python tkinter tcl

我在互联网上查找此内容时遇到了困难 - 我的搜索技能没有达到标准。我能记住事件名称,但我总是要查找要使用哪种类型的尖括号

一些 tkinter 事件与 <> 中的单词绑定(bind),例如

tab4e.bind("<Button-1>",f_x)

其他在<<>>,例如

nbook.bind('<<NotebookTabChanged>>', handle_tab_changed)

有什么理由为什么有些绑定(bind)在 <> 而其他绑定(bind)在 <<>>?

尽管示例是用 python 给出的,但我还是添加了 TCL,以防 TCL 编码人员可能知道答案。

最佳答案

具有一组括号的绑定(bind)是底层操作系统直接支持的内置事件。示例包括 <KeyPress> , <ButtonPress-1> , <Configure> , 还有很多。大多数内置事件直接与实际的物理事件相关联,例如按下鼠标按钮或键盘上的键。

带有双括号的绑定(bind)称为虚拟事件。它们不一定代表任何类型的物理事件,并且通常(尽管并非总是)对于特定的小部件是唯一的。例如,<<ListboxSelect>>仅由列表框使用,<<NotebookTabChanged>>只供ttk notebook使用,以此类推。

虚拟事件可以通过使用 event_add 的其他事件的组合来触发。小部件方法,尽管它们也可以通过调用 event_generate 来生成.

tcl/tk 手册页包含 list of predefined virtual events .

关于python - <event> 和 <<event>> 之间的 Tkinter 区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64683696/

相关文章:

python - 安装tensorflow 2有问题

python - 将 html 兄弟作为单独的项目抓取?

python - Tkinter 包布局 : Elastic band analogy

python - 如何在 Tkinter 标签中使用下标?

string - Tcl 从字符串中取出部分

php - 如何将字符串从 php 传递到 tcl 并执行脚本

python - 该 Selenium 元素的正确元素类型是什么?

python - 如何在Django中查看为测试模型创建的SQL?

python - 重新启动程序后附加列表时,pickle 数据将被删除

tcl - 如何在 tcl 中搜索变量并显示列表中的下一个变量