1

我在显示管理器对象中有一个组合框:

self.recentcmd_labeltext = StringVar()
self.recentcmd_combobox = ComboBox(self.frame, dropdown=1, editable=1, variable=self.recentcmd_labeltext)
self.recentcmd_combobox['command'] = self.cb_enter_command
self.recentcmd_combobox.grid(row=4, column=0, columnspan=2, sticky=N+S+W+E, pady=5)

我的组合框回调如下所示:

def cb_enter_command(self, event=None):
    self.controller.apply_command(self.recentcmd_labeltext.get())

我的问题是当用户用鼠标从组合框中选择一个项目时 self.controller.apply_command() 被调用两次;但只有一次当用户将项目键入组合框并按 Enter 键时。我不清楚为什么会这样。我尝试使用没有指向 StringVar() 链接的小部件 - 只需通过组合框上的选择属性访问字符串,但这没有区别。有人可以为我澄清吗?谢谢。

4

0 回答 0