1

我发现自动选择列表框中项目索引 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 ")

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

4

1 回答 1

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)

这有帮助吗?您可以在此处找到更完整的示例

于 2012-06-20T12:05:21.173 回答