tkinter Listbox遍历插入config.ini配置项仅显示最后一个值问题
问题排查与解决方法
根因分析
你的listbox.insert插入语句放在了for循环外部,遍历配置键的过程中仅执行了打印操作,没有向Listbox插入数据。遍历结束后变量k仅保留最后一次的取值TEST2,此时仅执行一次插入操作,自然只会展示最后一个值。
修正后代码
from tkinter import * from configobj import ConfigObj root = Tk() parser = ConfigObj("config1.ini") options = parser.iterkeys() # 先实例化并布局Listbox,放在循环外避免重复创建 listbox = Listbox(root, width=50) listbox.place(x=145, y=230) for k in options: print(k) # 插入语句放到循环内,每遍历到一个键就插入一次 listbox.insert('end', k) root.title('Test') root.geometry('500x500') root.mainloop()
调整说明
- Listbox的实例化和布局逻辑移到循环外,避免重复创建组件覆盖之前的内容
- 将插入操作移入for循环内部,每次遍历得到的键都会被插入到Listbox中
内容的提问来源于stack exchange,提问作者Sun B
相关产品推荐
相关产品推荐

