|
1
9
Tkinter不会将事件传递给父控件。但是,您可以通过使用绑定标记(或“bindtags”)来模拟效果。 我可以给出的最简短的解释是:当您向小部件添加绑定时,您不是在向小部件中添加绑定,而是绑定到“绑定标签”。此标记与小部件同名,但实际上不是小部件。 小部件有一个绑定标记列表,因此当小部件上发生事件时,每个标记的绑定都会按顺序处理。通常顺序为:
请注意,该列表中没有任何地方是“父小部件上的绑定”。 您可以将自己的bindtag插入到该顺序中。例如,您可以将主画布添加到每个子画布的绑定标记中。当您绑定到其中一个时,函数将被调用。因此,事件似乎传递给了父级。 下面是用python 2.7编写的一些示例代码。如果单击灰色正方形,您将看到打印出两个内容,显示子画布上的绑定和主画布上的约束都会发生火灾。如果单击粉色正方形,您将看到子画布绑定激发,但它阻止父绑定激发。 这样,所有的按钮点击实际上都“传递”给了父级。子画布可以通过返回“break”来控制父画布是否应该处理事件,如果它想“断开”事件处理链。
|
|
|
FranticFronk · Tkinter单选按钮在已选择时执行命令 1 年前 |
|
Psionman · 如何在tkinter中获取被跟踪变量的引用 1 年前 |
|
|
GaryC · Tkinter与图像 1 年前 |
|
|
Paul-ET · 对树状图应用程序发送的第一列进行排序失败 1 年前 |