Python >

Python >,python,python-3.x,listbox,tkinter,options-menu,Python,Python 3.x,Listbox,Tkinter,Options Menu,你有没有问过自己这个事件实际上是什么时候触发的?当您单击选项菜单时,它将被激发。这意味着将使用当前选项。因此,假设选项“a”处于活动状态,而您更改为选项“b”。此选择更改不会触发Button-1事件,但当您再次单击选项菜单时,它将触发,然后小部件将以“b”作为当前选项 代码中实际包含的内容是: self.dmenu1 = OptionMenu(self.Frame1, var,'Costcode','Name', command=self.bra

你有没有问过自己这个事件实际上是什么时候触发的?当您单击
选项菜单
时,它将被激发。这意味着将使用当前选项。因此,假设选项“a”处于活动状态,而您更改为选项“b”。此选择更改不会触发Button-1事件,但当您再次单击
选项菜单时,它将触发,然后小部件将以“b”作为当前选项

代码中实际包含的内容是:

self.dmenu1 = OptionMenu(self.Frame1, var,'Costcode','Name',
                         command=self.branches)

而且前面提到的绑定可以安全地消除。只要在
选项菜单
上进行选择,刚刚添加的
命令
选项就会调用某个函数。除此之外,您可能还希望在程序启动时填充它下面的列表框。为此,在定义了
self.f3ListBox

Kevin之后,调用
self.branchs(None)
,您的回复在实现时确实很有效,我现在发现了var.trace方法,谢谢您。我觉得@mmgp提供了一个更适合我和我目前理解水平的答案。谢谢你的回复。非常感谢并提供了很多信息。@Zenettii这里有一个免费的提示,我会给你:尽可能多地使用Python。我的意思是,这个变量跟踪实际上是由Tcl完成的,而不是由Python完成的。Python和Tcl之间的桥梁在数据类型方面提供了各种惊喜,因为这两种语言之间存在着根本性的差异。如果您可以在Python中使用Tkinter时处理Tcl变量,那么就这样做吧。谢谢您。这对我的理解有很大帮助。我觉得需要绑定,你友好地回答了我想知道的另一个问题,self.branchs(无),我没有意识到这里没有可用的。非常感谢,经验教训:)还有其他需要绑定的地方/情况,但这次不是。继续进行Tkinter开发,您将发现以下其他情况:)
var.trace('w', self.branches)
def branches(self, name, index, mode):
self.dmenu1 = OptionMenu(self.Frame1, var,'Costcode','Name',
                         command=self.branches)