【发布时间】:2018-07-20 04:10:01
【问题描述】:
我正在尝试使用tree.selection() 方法删除tkinter treeview 中显示的记录。我希望在treeview 中选择的row 也从sqlite3db 中删除,但是当我选择要删除的row 时,我收到了这个错误
_tkinter.TclError:我找不到项目
我在网站上找到了这个link,但我没有回答我的才华。
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 Delete():
selected_item = tree.selection()[0]
print(selected_item) # it prints the selected row id
conn = sqlite3.connect("TRIAL.db")
cur = conn.cursor()
cur.execute("DELETE FROM profile WHERE id=?", (selected_item,))
conn.commit()
for b in selected_item:
tree.delete(b)
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="DELETE FROM PARTICULAR DATA TREEVIEW AND SQLITE3",
command=Delete)
b2.pack(side=tk.BOTTOM)
root.mainloop()
【问题讨论】:
标签: python tkinter sqlite treeview