我有一个使用Listbox.curselection()
的代码:
self.index = int(self._Listbox.curselection()[0])
当列表框中没有选择任何内容时,我想引发一个错误窗口。
如有任何反馈,我们将不胜感激。 谢谢!
最佳答案
我不是 100% 确定问题是什么。如果没有选择任何项目,self._Listbox.curselection()
应返回一个空列表。由于您随后获取索引 0,因此它应该抛出 IndexError
。
演示代码:
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)
def callback():
items = map(int, listbox.curselection())
if(len(items) == 0):
print "No items"
else:
print items
button = Button(master,text="press",command=callback)
button.pack()
mainloop()
根据上面代码的行为(没有选择任何内容会返回空列表),当您没有选择任何内容时,您的代码应该抛出一个 IndexError ...现在您只需要处理异常(exception):
try:
self.index = int(self._Listbox.curselection()[0])
except IndexError:
tkMessageBox.showwarning("Oops","Need to select something")
最后,我想我会留下 link to some documentation在标准 Tkinter 对话框(tkMessageBox
模块)
关于python - 如何在 Tkinter 中使用 curselection 表示没有选择任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12811151/