You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySimpleGUI空Listbox调用get_indexes()触发IndexError问题咨询

问题根因

Listbox.get_indexes() 方法在无选中项时会返回空元组,此时直接取下标[0]就会触发IndexError。就算Listbox有内容,用户点击空白区域未选中任何项时也会出现同样的报错,这个判断逻辑本身就是必要的,实现起来非常简单。

最简修复方案

只需要在触发Listbox事件后先判断返回的索引元组是否非空,再进行后续操作即可,修改后的事件处理代码如下:

if event == 'Listbox':
    indexes = window['Listbox'].get_indexes()
    # 空元组布尔值为False,只有存在选中项时才执行后续逻辑
    if indexes:
        print(indexes[0])

如果使用Python 3.8及以上版本,用海象运算符可以写得更简洁:

if event == 'Listbox':
    if indexes := window['Listbox'].get_indexes():
        print(indexes[0])

这个方案不仅覆盖了Listbox为空的场景,也能兼容Listbox有内容但用户未选中任何项的场景,不需要额外修改Listbox的其他配置。

内容的提问来源于stack exchange,提问作者Eskimo868

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:36:03