【发布时间】:2020-06-13 04:13:33
【问题描述】:
所以基本上我有一个包含 5 个不同数据列的 SQL 数据库。 我想做的是从我的 SQL 查询中获取数据并将其放入列表中,以便我可以在 tkinter 的树视图小部件中显示它。
问题:
有没有更简单的方法从 SQL 表中获取数据并在 tkinter 中以类似表的格式显示?如果有怎么办?
在 tkinter 中使用 treeview 小部件制作表格是个好主意吗?
如果没有,我应该使用什么小部件?
我尝试将我的 SQL 输出转换为列表,但它不断给出类似以下的错误:
list index out of range
这是我的完整代码:
from tkinter import *
from tkinter import messagebox
from tkinter import ttk
import sqlite3
#lst = ['apple', 'banana', 'strawberry', 'avo', 'rasberry']
con = sqlite3.connect("user_info.db")
cur = con.cursor()
root = Tk()
tv = ttk.Treeview(root)
tv.pack()
tv.config(columns= ("name", 'age', 'email', 'town'))
tv.heading('#0', text='ID')
tv.column('#0', width = 100)
tv.heading('1', text = "Age")
tv.column('1', width = 100)
tv.heading('name', text = 'Name')
tv.column('name', width = 100)
tv.heading('2', text = "email")
tv.column("2", width = 100)
tv.heading('3', text = "Town")
tv.column("3", width = 100)
cur.execute('SELECT * FROM user')
fr = cur.fetchall()
print(fr)c
print(cur)
tv.insert("",'0', 'item1', text = fr[0])
tv.set('item1', 'name', fr[1])
tv.set('item1', 'age', fr[2])
tv.set('item1', 'email', fr[3])
tv.set('item1', 'town', fr[4])
root.mainloop()
对不起,奇怪的布局
【问题讨论】:
-
向我们展示你的 python 代码
-
总是把代码、错误信息和数据放在有问题的地方——这样会更易读。
-
现在不行了
-
我添加了完整的代码(不是太大)\
-
顺便说一句:tkinter 没有用于表格的标准小部件。请参阅 pandastable 或 tkintertable - 它们比
Treeview更容易