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

Tkinter Listbox How to tell if an item is selected

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

selection = self.recipe_list.curselection()
    if not selection is None:
        self.recipe_list.delete(selection)
    else:
        print("Nothing to delete!")

它不会像您正在检查的那样返回 None,而是 returns 一个空字符串 ""。检查如下:

if selection:
    self.recipe_list.delete(selection)
else:
    print("Nothing to delete!")
if not self.lstb.curselection() is ():

根据

Tkinter 参考:Python

的 GUI

列表框对象的方法包括:

.curselection()

Returns 包含所选元素的行号的元组,从 0 开始计数。

如果未选择任何内容,returns 一个空元组。

所以你可以做这样的事情

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