Python 2.7 Tkinter中的自定义事件

Python 2.7 Tkinter中的自定义事件,python-2.7,events,tkinter,Python 2.7,Events,Tkinter,我是新来的。 我想知道是否有任何方法可以捕获小部件的自定义事件, 例如,在widget.pack()之后捕获压缩事件,或者在画布上绘制一些图形之后捕获画布小部件的绘制事件,等等?您描述的事件不存在。如果愿意,您可以使用事件\u generate方法创建自己的自定义事件。有了它,您可以创建自己的小部件类,这些小部件类可以发出您想要的任何自定义事件 自定义事件必须始终使用双尖括号定义。例如,以下代码行将创建名为的事件: canvas.event\u生成(“”) 然后,您可以像绑定任何其他事件一样绑

我是新来的。
我想知道是否有任何方法可以捕获小部件的自定义事件,

例如,在
widget.pack()之后捕获压缩事件,或者在画布上绘制一些图形之后捕获画布小部件的绘制事件,等等?

您描述的事件不存在。如果愿意,您可以使用
事件\u generate
方法创建自己的自定义事件。有了它,您可以创建自己的小部件类,这些小部件类可以发出您想要的任何自定义事件

自定义事件必须始终使用双尖括号定义。例如,以下代码行将创建名为
的事件:

canvas.event\u生成(“”)
然后,您可以像绑定任何其他事件一样绑定到该事件:

the_canvas.bind("<<OnPaint>>", do_on_paint)
canvas.bind(“,do\u on\u paint”)
在_pack
上的
的特定情况下,可能会有一些事件在更抽象的级别上执行您想要的操作。例如,当小部件变得可见(
)、更改大小(
)和其他一些事件时,会触发一些事件


tcl/tk官方文档列出了支持的事件。请参阅。

可能的事件类型列表比示例中通常使用的少数事件类型(如按键、按钮、运动和鼠标滚轮)要广泛得多。这是一本书。看起来打包应该会生成一个映射事件。

好吧,这取决于你的上下文:假设你有一个按钮小部件,你想按下它,这样就会画一个圆圈:在这种情况下,当你创建按钮时,你可以添加选项
命令
,以便调用该函数
my_button=Tkinter.button(text='Press me',command=draw\u cricle\u method)
。很抱歉,但我明确地解释了,我想捕获不是按钮默认事件列表中的事件,例如,如何捕获打包事件?您提到了单击事件,它位于按钮小部件的事件列表中。
the_canvas.bind("<<OnPaint>>", do_on_paint)