【发布时间】:2018-07-17 21:27:14
【问题描述】:
我在如何将我的sqlite3db 中的所有记录输出到tkinter treeview 时遇到问题。它只输出db 中的最后一条记录,而且这些记录也没有出现在为其指定的列中。@ 987654324@ 方法将所有db 记录打印到我的终端,但不会将所有记录输出到treeview 小部件。
欢迎您的建议来实现这一目标
from tkinter import ttk
import tkinter as tk
import sqlite3
def connect():
conn = sqlite3.connect("TRIAL.db")
cur = conn.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS profile(id INTEGER PRIMARY KEY,
First TEXT, Surname TEXT)")
conn.commit()
conn.close()
def View():
conn = sqlite3.connect("TRIAL.db")
cur = conn.cursor()
cur.execute("SELECT * FROM profile")
rows = cur.fetchall()
for row in rows:
print(row) # it print all records in the database
tree.insert("", tk.END, values=row)
conn.close()
connect() # this to create the db
root = tk.Tk()
root.geometry("400x400")
tree= ttk.Treeview(root, column=("column", "colunn1"))
tree.heading("#0", text="NUMBER")
tree.heading("#1", text="FIRST NAME")
tree.heading("#2", text="SURNAME")
tree.pack()
b2 = tk.Button(text="view data", command=View)
b2.pack()
root.mainloop()
【问题讨论】:
-
我看到您创建了一个表,但您是否在选择之前将数据插入到该表中?
-
@ZackTarr 是的,记录已经退出
-
tree.insert("", tk.END, values=row)不在 for 循环中。是不是问题中的错字? -
@j_4321 这是代码中的错字
标签: python tkinter sqlite treeview