我发现这个自动选择功能对列表框中的项目索引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 ")
请指教!执行预期操作的任何其他方法也可以。感谢。
答案 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。