[英]How to update only selected sqlite3 record from tkinter treeview
[英]How to output sqlite3 data in tkinter treeview
上午有有在我的所有记录如何输出问题sqlite3
分贝到tkinter treeview
。它仅输出在最后一个记录db
,并记录不会出现在对后援指定的列print
方法印刷的所有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()
您的代码中有两个问题:
tree.insert("", tk.END, values=row)
不在for循环内,因此仅最后一行将插入到树视图中。 第二个是#0
列是一个特殊列,其值是使用text=...
设置的,而不是使用values=(...)
。 为了正确显示数据,您至少有两种选择:
tree.insert("", tk.END, values=row)
tree.insert("", tk.END, text=row[0], values=row[1:])
第二个是不使用特殊列#0
,因为树视图用作表,所以您不需要它。 创建树时,使用选项show='headings'
隐藏#0
列并创建3列:
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=("column1", "column2", "column3"), show='headings') tree.heading("#1", text="NUMBER") tree.heading("#2", text="FIRST NAME") tree.heading("#3", text="SURNAME") tree.pack() b2 = tk.Button(text="view data", command=View) b2.pack() root.mainloop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.