Python Tkinter Listbox取消绑定默认选择

时间:2012-06-20 02:40:16

标签: python listbox widget tkinter

我发现这个自动选择功能对列表框中的项目索引0造成了麻烦。在我的脚本中,我有3个名为lb1,lb2和lb3的列表框。如果用户选择lb2或lb3上的任何项目,我打算弹出一个MessageBox,要求用户只选择lb1中的项目。但是,由于lb2和lb3中的自动选择项索引0,每当我单击lb1中的项时,也会出现MessageBox。

问题: 如何在ListBox中禁用项目索引0的初始选择?

如果用户从lb2或lb3中选择项目,这是调用MessageBox的脚本的一部分:

if lb2.get(ACTIVE) or lb3.get(ACTIVE):
    tkMessageBox.showwarning("Warning","Please select from lb1 ")

请指教!执行预期操作的任何其他方法也可以。感谢。

1 个答案:

答案 0 :(得分:1)

你在使用什么操作系统?

如果我在Windows上执行此代码(取自effbot.org上的Tkinter Listbox参考页面),则列表框中没有默认选择。

from Tkinter import *
master=Tk()
listbox=Listbox(master)
listbox.pack()
for item in ['one','two','three','four']:
    listbox.insert(END, item)

编辑:好的,现在我看到你在问什么。在尝试使用curselection之前,您想先检查get(ACTIVE)方法。

if listbox.curselection():
    item = listbox.get(ACTIVE)

这有帮助吗?您可以找到more complete example here