激しい研究とかなり単純な問題にもかかわらず、私の問題に対する正解は見つかりません。 私がしたいのは、 'Button-1'でクリックするとコンボボックスがドロップダウンされることです。しかし、私が何をコードしているかにかかわらず、コンボは私が望むように行動しません。python tkinter.ttkコンボボックスのイベントをマウスクリックして
私は私の問題を実証するための簡単なコード作成し、次の
from tkinter import *
import tkinter.ttk
def combo_events(evt):
if int(evt.type) is 4:
w = evt.widget
w.event_generate('<Down>')
root = Tk()
li = ('row 1', 'row 2', 'row 3')
combo1 = tkinter.ttk.Combobox(root, value=li)
combo2 = tkinter.ttk.Combobox(root, value=li)
combo1.bind('<Button-1>', combo_events)
combo2.bind('<Button-1>', combo_events)
combo1.pack()
combo2.pack()
root.mainloop()
まあ私はこのコードをしようとした場合、コンボドロップダウンが、期待できないようです。だから、私は 'FocusIn'イベントのバインドを追加しようとしましたが、状況を複雑にし、「FocusOut」を禁止します...
私の目標を達成するのに役立ちますか?
ps:ウィジェットのフレームをクリックするとコンボがドロップされることがわかりましたが、より正確にはクリックするとドロップします。
そして、コンボボックスが引き起こす可能性のあるイベントの完全なリストはどこにありますか?努力と回答のために
thx
その点については、どうしてチェックするのですか?バインディングは1つしかないので、1つの値しか指定できません。 –
こんにちは、私のサンプルコードには、私がabtを書いていた効果を表示するためだけにカットしたバインディングが1つあります。実際、私の実際のコードにはかなりのバインディングがあります。 –
また、私はintと比較しているのでアイデンティティをチェックしていますが、もちろん同様の方法で等価演算子でチェックすることはできます。それにもかかわらず、この変更は問題を解決しません。コンボボックスをクリックして試してみると、最初に書き込むことができます(フォーカスを設定します)、2回目のクリックだけをドロップします。しかし、私がやろうとしていることは、それが同時に(あるいは可能でないなら、あなたがそれに書き込むことを可能にするのではなく)ドロップダウンするということです。 –