gpt4 book ai didi

python - 将 <> 与多个列表框一起使用

转载 作者:太空宇宙 更新时间:2023-11-03 14:53:21 24 4
gpt4 key购买 nike

我正在尝试使用多个列表框作为显示信息树的方式。

# dictionary: {str : [str]}
dict_ = {some_class.get_dictionary()}
dict_keys = list[dict.keys()]
dict_keys.sort()

def selected_item(val):
list_box_2.delete(0, END)

sender = val.widget
index = sender.curselection()
value = sender.get(index)

for thing in dict[value]:
list_box_2.insert(END, thing)

list_box_1 = Listbox(display_frame, selectmode=SINGLE)
for item in dict_keys:
list_box_1.insert(END, item)
list_box_1.bind("<<ListboxSelect>>", selected_item)
list_box_1.grid(sticky=W+E+N+S)

def display_selected(val):
sender = val.widget
index = sender.curselection()
value = sender.get(index)
# here I actually call methods from value, value is a class.
# this in turn should populate a third list_box but I can't get there.
print(value)

list_box_2 = Listbox(display_frame, selectmode=SINGLE)
list_box_2.bind("<<ListboxSelect>>", display_selected)
list_box_2.grid(column=0, row=1, sticky=W+E)

List_box_1 按预期工作:它显示字典键,当用户单击其中一项时,它会使用所选键处的字典内容填充 list_box_2。但是,当我单击 list_box_2 中的项目时,它会调用 selected_item()而不是display_selected (或者它可能同时调用两者,很难说),但这会导致 list_box_2 中的所有内容被删除(因为 list_box_2.delete(0, END) )。我相信这是因为绑定(bind)到 "<<ListboxSelect>>" ,但我不确定。

有什么方法可以实现我正在寻找的功能吗?我环顾四周,绞尽脑汁,但找不到任何相关信息。

谢谢

最佳答案

您应该始终在 Tkinter 列表框中包含 exportselection=0 选项,尤其是当屏幕上同时出现多个选项时。没有此选项的默认模式是一种奇怪的模式,其中列表选择与系统剪贴板相关联;多个列表中的同时选择根本不可能存在(并且您将丢弃用户自己可能放入剪贴板中的任何内容)。

关于python - 将 <<ListboxSelect>> 与多个列表框一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45764709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com