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

如何获取Tkinter中Listbox的全部条目并解决仅显示最后一条的问题

问题解决方法

核心错误原因

  • 循环内每次创建Label时都覆盖了receipt变量,仅保留了最后一个条目对应的Label实例
  • 仅在循环结束后调用了一次pack(),只有最后一个Label会被渲染到窗口中

修正后的代码

get_content = listbox2.get(0, END)
bb = Label(receipt_window, text = "Pizzeria")
line1 = Label(receipt_window, text = "----------------------------------------------------------------")
# 先打包固定表头
bb.pack()
line1.pack()
# 循环内每生成一个条目Label就立即打包
for con_item in get_content:
    con = con_item.split('PHP')
    con1 = con[0]
    con2 = con[1]
    rec_content = f'{con1:<40}costs PHP{con2:<8}'
    receipt_item = Label(receipt_window, text = rec_content)
    receipt_item.pack()

补充优化建议

如果需要把所有条目统一存到变量里后续使用,可以在循环外定义列表存储所有格式化后的内容:

# 存储所有格式化后的条目,可随时调用
all_rec_items = []
for con_item in get_content:
    con = con_item.split('PHP')
    con1 = con[0]
    con2 = con[1]
    rec_content = f'{con1:<40}costs PHP{con2:<8}'
    all_rec_items.append(rec_content)
    receipt_item = Label(receipt_window, text = rec_content)
    receipt_item.pack()

# 示例:打印所有条目到控制台
print(all_rec_items)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:57:03