我正在尝试创建一个简单的 GUI,允许用户按下按钮,这将从显示的列表框中删除一个条目。但是,如果没有选择任何条目,控制台会抛出错误,那么我如何确定用户是否选择了条目。这是我的代码:
selection = self.recipe_list.curselection()
if not selection is None:
self.recipe_list.delete(selection)
else:
print("Nothing to delete!")
它不会像您检查的那样返回
None
,而是返回一个空字符串 ""
。检查如下:
if selection:
self.recipe_list.delete(selection)
else:
print("Nothing to delete!")
根据
Tkinter 参考:Python 的 GUI
列表框对象的方法包括:
.curselection()
返回一个元组,其中包含所选元素的行号,从 0 开始计数。
如果未选择任何内容,则返回空元组。
所以你可以做这样的事情
if self.MyListbox.curselection():
index = self.MyListbox.curselection()[0]
if not self.lstb.curselection() is ():
我知道这个问题不久前就得到了回答,但我想我应该加上我的两分钱:
我发现因为技术上列表框可以有多个选定的值,我可以使用这个:
for item in self.my_listbox.curselection()[::-1]:
my_listbox.delete(item)
如果没有项目,它不允许向用户显示消息框,但它会删除所有选定的项目,并且如果没有则不会抱怨