python - 如何在 Tkinter 中使用 curselection 表示没有选择任何内容

标签 python tkinter

我有一个使用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/

相关文章:

python - Altair 中的平行坐标

python - 使用 WLST 创建 Weblogic 域和集群

python - Tkinter Python 删除垂直空格

python - 方法后 Tkinter 的内部工作

python-3.x - 更改 ttk 组合框下拉列表框的宽度

Linux 中的 Python Pickle 文件与 Mac 不兼容?

python - 在 Maya 中,如何查找 UV 平铺中的所有贝壳?

Python 命令行应用程序迁移到基于 Web

python - 如何不断更新 tkinter 标签直到按下按钮?

python - tkinter 使用 sys.exit 锁定