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