Я не нашел правильного ответа на мою проблему, несмотря на интенсивные исследования и довольно простую проблему. Все, что я хотел бы сделать, это мои выпадающие списки при нажатии кнопки «Button-1». Но независимо от того, что я кодирую, комбо не ведет себя так, как я желаю.python tkinter.ttk combobox down event on mouseclick
Далее я подготовил простой код, чтобы продемонстрировать мою проблему:
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: Я знаю, что комбо выйдет, щелкнув рамку виджета, но, если быть более точным, я бы хотел его сбросить, щелкнув по нему.
И, кстати, где я могу найти довольно полный список событий, которые может вызывать combobox?
thx для усилий и ответа.
В этом отношении, зачем вообще проверять? Существует только одна привязка, поэтому она может иметь только одно значение. –
Привет, конечно, в моем примере кода есть только одна привязка, которую я разрезал, чтобы показать эффект, который я писал abt. на самом деле, в моем реальном коде есть довольно много привязок. –
Кроме того, я проверяю идентификацию, так как я сравниваю с int, но, тем не менее, вы можете проверить с оператором равенства так же. Тем не менее, это изменение не решит проблему. Если вы попытаетесь щелкнуть в поле со списком, оно сначала позволит вам записать в него (установить Focus?) И только опустить второй щелчок. Но то, что я пытаюсь сделать, заключается в том, что он будет делать оба в одно и то же время (или, если это невозможно, затем опуститься, а не позволить вам записать в него.) –