我可以双击tkinter Listbox选项以在Python中调用函数吗?

Big*_*pie 5 python user-interface listbox tkinter double-click

我有一个带有关联的“选择”按钮的列表框。我希望我的GUI能够双击任何列表框值来调用此按钮的命令。当选择一个选项并且用户双击窗口中的任何位置时,我的尝试(以下)有效。我希望它仅在双击选择本身(蓝色突出显示的行)时才起作用。

做这个的最好方式是什么?

from tkinter import *

def func1():
    print("in func1")

def func2():
    print("in func2")

def selection():
    try:
        dictionary[listbox.selection_get()]()
    except:
        pass

root = Tk()

frame = Frame(root)
frame.pack()

dictionary = {"1":func1, "2":func2}

items = StringVar(value=tuple(sorted(dictionary.keys())))

listbox = Listbox(frame, listvariable=items, width=15, height=5)
listbox.grid(column=0, row=2, rowspan=6, sticky=("n", "w", "e", "s"))
listbox.focus()

selectButton = Button(frame, text='Select', underline = 0, command=selection)
selectButton.grid(column=2, row=4, sticky="e", padx=50, pady=50)

root.bind('<Double-1>', lambda x: selectButton.invoke())

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

Bry*_*ley 5

更改root.bind(...)listbox.bind(...)