如何从两个Listbox中同时选择?
Posted
技术标签:
【中文标题】如何从两个Listbox中同时选择?【英文标题】:How to select at the same time from two Listbox? 【发布时间】:2010-10-19 21:23:04 【问题描述】:from Tkinter import *
master = Tk()
listbox = Listbox(master)
listbox.pack()
listbox.insert(END, "a list entry")
for item in ["one", "two", "three", "four"]:
listbox.insert(END, item)
listbox2 = Listbox(master)
listbox2.pack()
listbox2.insert(END, "a list entry")
for item in ["one", "two", "three", "four"]:
listbox2.insert(END, item)
master.mainloop()
上面的代码创建了一个带有两个列表框的tkinter
窗口。但是,如果您想从两者中检索值,则会出现问题,因为一旦您在其中一个中选择了一个值,它就会取消选择您在另一个中选择的任何内容。
这只是开发人员必须忍受的限制吗?
【问题讨论】:
【参考方案1】:简短回答:将所有列表框小部件的exportselection
属性的值设置为 False 或零。
来自列表框小部件的a pythonware overview:
默认情况下,选择导出 X选择机制。如果你 有多个列表框 屏幕,这真的把事情搞砸了 对于可怜的用户。如果他选择 一个列表框中的东西,然后 在另一个中选择某些东西, 原始选择被清除。它是 通常禁用此功能是个好主意 这种情况下的机制。在里面 下面的例子,三个列表框是 在同一个对话框中使用:
b1 = Listbox(exportselection=0) for item in families: b1.insert(END, item) b2 = Listbox(exportselection=0) for item in fonts: b2.insert(END, item) b3 = Listbox(exportselection=0) for item in styles: b3.insert(END, item)
tk 小部件的权威文档是基于 Tcl 语言而不是 python,但它很容易翻译成 python。 exportselection
属性可以在 standard options manual page 上找到。
【讨论】:
【参考方案2】:exportselection=0
在定义列表框时似乎可以解决这个问题。
【讨论】:
以上是关于如何从两个Listbox中同时选择?的主要内容,如果未能解决你的问题,请参考以下文章
如何从ListBox.ItemTemplate DataTemplate内部调用Button命令来传递参数而不选择ListBox项?