如何将列表中的所有值放在单独的行中的列表框中?蟒蛇

时间:2014-10-21 08:41:48

标签: python listbox

我有以下代码,它创建一个列表框并用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 :(得分:0)

似乎问题是你的列表中只有一个条目,sql语句的全部内容被分配给" numrows"。当您将numrows附加到self.data列表时,它会将其作为一个大的单个条目。你做了相同的事情:

self.data.append(curs.fetchall())

这只是将sql返回直接传递给你的列表。在将其添加到列表之前,您需要解析sql语句中的返回信息,而不是直接将其附加到列表中。