如何将列表中的所有值放入列表框的不同文本行中?Python

0 投票
1 回答
710 浏览
提问于 2025-04-28 18:12

我有一段代码,它创建了一个列表框,并从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 语句的返回结果进行解析,而不是直接把它添加到列表里。

撰写回答