【问题标题】:Tkinter Listbox How to tell if an item is selectedTkinter Listbox 如何判断一个项目是否被选中
【发布时间】:2015-08-01 02:01:40
【问题描述】:

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

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

【问题讨论】:

  • 您遇到的错误是什么?
  • TclError: bad listbox index "": must be active, anchor, end, @x,y, or a number

标签: python tkinter listbox


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    根据

    Tkinter 参考:Python 的 GUI

    列表框对象的方法包括:

    .curselection()

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

    如果没有选择,则返回一个空元组。

    所以你可以做这样的事情

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

    【讨论】:

      【解决方案3】:
      if not self.lstb.curselection() is ():
      

      【讨论】:

        猜你喜欢
        • 2011-06-22
        • 2019-07-24
        • 2018-01-15
        • 2014-03-09
        • 1970-01-01
        • 1970-01-01
        • 2021-03-06
        • 2015-06-11
        • 1970-01-01
        相关资源
        最近更新 更多