从空列表框获取索引时出错。get_indexes()

Error while getting the index from an empty Listbox .get_indexes()

当我想获取列表框中所选项目的索引,而列表框为空时,出现错误。

window['Listbox'].get_indexes()[0]
------------------------------------
IndexError: tuple index out of range

我在我的程序中使用的原始列表不是空的,但它正在改变,所以它可能是空的,在这种情况下,当我按下列表框时,程序会崩溃。

代码:

import PySimpleGUI as sg

list1 = []

layout = [[sg.Listbox(list1, s=(13, 6), enable_events=True, key='Listbox')]]

window = sg.Window("listbox test 1", layout=layout, size=(100, 100))


while True:
    event, values = window.read()
    if event == "Exit" or event == sg.WIN_CLOSED:
        break
    if event == 'Listbox':
        print(window['Listbox'].get_indexes()[0])

可能有一个简单的解决方法吗?

如果没有,那么我必须添加一个检查列表框是否为空。

这对你有用吗?

if event == 'Listbox':
   try:
      print(window['Listbox'].get_indexes()[0])
   except:
      print("Empty list")

只需要一个 if 语句。

if values['Listbox']:    # if something was selected
   first_entry = values['Listbox'][0]
   window['Listbox'].get_indexes()[0]  # if you want the index... it'll be safe because values says there are entries