Tkinter Listbox 如何判断某个项目是否被选中

问题描述 投票:0回答:4

我正在尝试创建一个简单的 GUI,允许用户按下按钮,这将从显示的列表框中删除一个条目。但是,如果没有选择任何条目,控制台会抛出错误,那么我如何确定用户是否选择了条目。这是我的代码:

selection = self.recipe_list.curselection()
    if not selection is None:
        self.recipe_list.delete(selection)
    else:
        print("Nothing to delete!")
python tkinter listbox
4个回答
3
投票

它不会像您检查的那样返回

None
,而是返回一个空字符串
""
。检查如下:

if selection:
    self.recipe_list.delete(selection)
else:
    print("Nothing to delete!")

3
投票

根据

Tkinter 参考:Python 的 GUI

列表框对象的方法包括:

.curselection()

返回一个元组,其中包含所选元素的行号,从 0 开始计数。

如果未选择任何内容,则返回空元组。

所以你可以做这样的事情

if self.MyListbox.curselection():
        index = self.MyListbox.curselection()[0]

0
投票
if not self.lstb.curselection() is ():

0
投票

我知道这个问题不久前就得到了回答,但我想我应该加上我的两分钱:

我发现因为技术上列表框可以有多个选定的值,我可以使用这个:

for item in self.my_listbox.curselection()[::-1]:
   my_listbox.delete(item)

如果没有项目,它不允许向用户显示消息框,但它会删除所有选定的项目,并且如果没有则不会抱怨

© www.soinside.com 2019 - 2024. All rights reserved.