ディスプレイマネージャオブジェクトにコンボボックスがあります。
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()が2回呼び出されることです。ただし、ユーザーがアイテムをコンボボックスに入力してEnterキーを押したときに1回だけです。なぜそうなるのかわかりません。StringVar()へのリンクなしでウィジェットを使用してみました-コンボボックスのselection属性を介して文字列にアクセスするだけですが、違いはありません。誰かが私のために明確にすることができますか?ありがとう。