如何将列表中的所有值放入列表框的不同文本行中?Python
我有一段代码,它创建了一个列表框,并从MySQL查询中填充数据。
self.listbox = Listbox(self)
self.data = ['All Accounts']
sql = "SELECT AccNo FROM accounts"
curs.execute(sql)
numrows = curs.fetchall()
self.data.append(numrows)
for i in self.data:
self.listbox.insert(END, i)
self.listbox.grid(row=8, column= 0, columnspan=3, rowspan=8)
现在数据在列表框里显示,但都是在一行上。请问我该怎么改代码,让列表框里的每个项目都单独占一行呢?
提前谢谢你的帮助。
1 个回答
0
看起来你的问题是,你的列表里其实只有一个条目,整个 SQL 语句的内容都被赋值给了 "numrows"。当你把 numrows 添加到 self.data 列表时,它实际上是作为一个完整的、单一的条目在添加。你做的事情就相当于这样:
self.data.append(curs.fetchall())
这就相当于直接把 SQL 的返回结果放进了你的列表。你需要在把返回的信息添加到列表之前,先对 SQL 语句的返回结果进行解析,而不是直接把它添加到列表里。