Here in this blog we are going to make the window where we can send all the data from the list to the treeview form.
here is the following codes
from tkinter import *
from tkinter import ttk
import sqlite3
root=Tk()
root.geometry("500x600")
#add some stylr
style=ttk.Style()
#Pick a theme
style.theme_use("default")
style.configure("Treeview",
background="white",
foreground="black",
rowheight=25,
fieldbackground="white")
#change selected colour
style.map('Treeview',background=[('selected','blue')])
#create treeview frame
tree_frame=Frame(root)
tree_frame.pack(pady=20)
#treeview scrollbar
tree_scroll=Scrollbar(tree_frame)
tree_scroll.pack(side=RIGHT,fill=Y)
#Create treeview
my_tree=ttk.Treeview(tree_frame,yscrollcommand=tree_scroll.set,selectmode="browse")
my_tree.pack()
#configure the scroll bar
tree_scroll.config(command=my_tree.yview)
#format our columns
my_tree['columns']=("Name","ID","Favourite Pizza")
my_tree.column("#0",width=0,stretch=NO)#stretch=NO means that if we give the width =0 than also if the white gap is shown over there than by the stretch it is being removed
my_tree.column("Name",anchor=W,width=140)
my_tree.column("ID",anchor=CENTER,width=100)
my_tree.column("Favourite Pizza",anchor=W,width=140)
#create headings
my_tree.heading("#0",text="",anchor=W)
my_tree.heading("Name",text="Name",anchor=W)
my_tree.heading("ID",text="ID",anchor=CENTER)
my_tree.heading("Favourite Pizza",text="Favourite Pizza",anchor=W)
data=[
["John",1,"Peperroni"],
["rahul",2,"Daal bhaat"],
["prince",3,"roti sabji"],
["anwar",4,"nenwa kaddu"],
["utpal",5,"raita"],
["John",1,"Peperroni"],
["rahul",2,"Daal bhaat"],
["prince",3,"roti sabji"],
["anwar",4,"nenwa kaddu"],
["utpal",5,"raita"],
["John",1,"Peperroni"],
["rahul",2,"Daal bhaat"],
["prince",3,"roti sabji"],
["anwar",4,"nenwa kaddu"],
["utpal",5,"raita"],
["John",1,"Peperroni"],
["rahul",2,"Daal bhaat"],
["prince",3,"roti sabji"],
["anwar",4,"nenwa kaddu"],
["utpal",5,"raita"],
["arun",6,"biryani"]
]
#create striped row tags
my_tree.tag_configure('oddrow',background="white")
my_tree.tag_configure('evenrow',background="light blue")
global count
count=0
for record in data:#this creates the loop within a data to get in the easier way
if count % 2 == 0:
my_tree.insert(parent='', index='end', iid=count, text="", values=(record[0],record[1],record[2]),tags=('evenrow'))
else:
my_tree.insert(parent='', index='end', iid=count, text="", values=(record[0], record[1], record[2]),
tags=('oddrow'))
count += 1
""""#Add DAta
my_tree.insert(parent='',index='end',iid=0,text="",values=("John",1,"Peperroni"))
my_tree.insert(parent='',index='end',iid=1,text="",values=("rahul",2,"Daal bhaat"))
my_tree.insert(parent='',index='end',iid=2,text="",values=("prince",3,"roti sabji"))
my_tree.insert(parent='',index='end',iid=3,text="",values=("anwar",4,"nenwa kaddu"))
my_tree.insert(parent='',index='end',iid=4,text="",values=("utpal",5,"raita"))
my_tree.insert(parent='',index='end',iid=5,text="",values=("arun",6,"biryani"))
"""
#add child(my_tree.insert shows up the child in tree view it shows up like the plus size in it
#my_tree.insert(parent='',index='end',iid=6,text="Child",values=("arun",6,"biryani"))
#my_tree.move('6','0','0')
add_frame = Frame(root)
add_frame.pack(pady=20)
#adding label names
n1=Label(add_frame,text="Name")
n1.grid(row=0,column=0)
i1=Label(add_frame,text="ID")
i1.grid(row=0,column=1)
t1=Label(add_frame,text="Topping")
t1.grid(row=0,column=2)
#adding entry boxes
name_box=Entry(add_frame)
name_box.grid(row=1,column=0)
id_box=Entry(add_frame)
id_box.grid(row=1,column=1)
topping_box = Entry(add_frame)
topping_box.grid(row=1,column=2)
def add_record():
global count
if count % 2 == 0:
my_tree.insert(parent='', index='end', iid=count, text="",
values=(name_box.get(), id_box.get(),topping_box.get()),tags=('evenrow'))
else:
my_tree.insert(parent='', index='end', iid=count, text="",
values=(name_box.get(), id_box.get(), topping_box.get()), tags=('oddrow'))
count += 1
#Clear the boxes
name_box.delete(0,END)
id_box.delete(0,END)
topping_box.delete(0,END)
#remove all records
def remove_all():
for record in my_tree.get_children():
my_tree.delete(record)
#remove one selected
def remove_one():
x=my_tree.selection()[0]
my_tree.delete(x)
#def remove_many
def remove_many():
x=my_tree.selection()
for record in x:
my_tree.delete(record)
def select_record(event):
name_box.delete(0,END)
id_box.delete(0,END)
topping_box.delete(0,END)
#GRAB RECORD NUMBER
selected=my_tree.focus()
#grab record values
values=my_tree.item(selected,'values')
#temp_label.config(text=values[0])
#output to entry boxes
name_box.insert(0,values[0])
id_box.insert(0, values[1])
topping_box.insert(0, values[2])
def update_record():
selected=my_tree.focus()
my_tree.item(selected,text="", values=(name_box.get(),id_box.get(),topping_box.get()))
name_box.delete(0, END)
id_box.delete(0, END)
topping_box.delete(0, END)
#buttons
select_button=Button(root,text="Select Record",command=select_record)
select_button.pack()
update_button=Button(root,text="Update Record",command=update_record)
update_button.pack()
add_record=Button(root,text="Add Record",command=add_record)
add_record.pack()
#remove all
remove_all=Button(root,text="Remove all records",command=remove_all)
remove_all.pack()
#remove one
remove_one=Button(root,text="Remove One Record",command=remove_one)
remove_one.pack()
#remove many selected
remove_many=Button(root,text="remove many selected",command=remove_many)
remove_many.pack()
temp_label=Label(root,text="")
temp_label.pack()
my_tree.bind("<ButtonRelease-1>",select_record)
root.mainloop()from tkinter import *
from tkinter import ttk
import sqlite3
root=Tk()
root.geometry("500x600")
#add some stylr
style=ttk.Style()
#Pick a theme
style.theme_use("default")
style.configure("Treeview",
background="white",
foreground="black",
rowheight=25,
fieldbackground="white")
#change selected colour
style.map('Treeview',background=[('selected','blue')])
#create treeview frame
tree_frame=Frame(root)
tree_frame.pack(pady=20)
#treeview scrollbar
tree_scroll=Scrollbar(tree_frame)
tree_scroll.pack(side=RIGHT,fill=Y)
#Create treeview
my_tree=ttk.Treeview(tree_frame,yscrollcommand=tree_scroll.set,selectmode="browse")
my_tree.pack()
#configure the scroll bar
tree_scroll.config(command=my_tree.yview)
#format our columns
my_tree['columns']=("Name","ID","Favourite Pizza")
my_tree.column("#0",width=0,stretch=NO)#stretch=NO means that if we give the width =0 than also if the white gap is shown over there than by the stretch it is being removed
my_tree.column("Name",anchor=W,width=140)
my_tree.column("ID",anchor=CENTER,width=100)
my_tree.column("Favourite Pizza",anchor=W,width=140)
#create headings
my_tree.heading("#0",text="",anchor=W)
my_tree.heading("Name",text="Name",anchor=W)
my_tree.heading("ID",text="ID",anchor=CENTER)
my_tree.heading("Favourite Pizza",text="Favourite Pizza",anchor=W)
data=[
["John",1,"Peperroni"],
["rahul",2,"Daal bhaat"],
["prince",3,"roti sabji"],
["anwar",4,"nenwa kaddu"],
["utpal",5,"raita"],
["John",1,"Peperroni"],
["rahul",2,"Daal bhaat"],
["prince",3,"roti sabji"],
["anwar",4,"nenwa kaddu"],
["utpal",5,"raita"],
["John",1,"Peperroni"],
["rahul",2,"Daal bhaat"],
["prince",3,"roti sabji"],
["anwar",4,"nenwa kaddu"],
["utpal",5,"raita"],
["John",1,"Peperroni"],
["rahul",2,"Daal bhaat"],
["prince",3,"roti sabji"],
["anwar",4,"nenwa kaddu"],
["utpal",5,"raita"],
["arun",6,"biryani"]
]
#create striped row tags
my_tree.tag_configure('oddrow',background="white")
my_tree.tag_configure('evenrow',background="light blue")
global count
count=0
for record in data:#this creates the loop within a data to get in the easier way
if count % 2 == 0:
my_tree.insert(parent='', index='end', iid=count, text="", values=(record[0],record[1],record[2]),tags=('evenrow'))
else:
my_tree.insert(parent='', index='end', iid=count, text="", values=(record[0], record[1], record[2]),
tags=('oddrow'))
count += 1
""""#Add DAta
my_tree.insert(parent='',index='end',iid=0,text="",values=("John",1,"Peperroni"))
my_tree.insert(parent='',index='end',iid=1,text="",values=("rahul",2,"Daal bhaat"))
my_tree.insert(parent='',index='end',iid=2,text="",values=("prince",3,"roti sabji"))
my_tree.insert(parent='',index='end',iid=3,text="",values=("anwar",4,"nenwa kaddu"))
my_tree.insert(parent='',index='end',iid=4,text="",values=("utpal",5,"raita"))
my_tree.insert(parent='',index='end',iid=5,text="",values=("arun",6,"biryani"))
"""
#add child(my_tree.insert shows up the child in tree view it shows up like the plus size in it
#my_tree.insert(parent='',index='end',iid=6,text="Child",values=("arun",6,"biryani"))
#my_tree.move('6','0','0')
add_frame = Frame(root)
add_frame.pack(pady=20)
#adding label names
n1=Label(add_frame,text="Name")
n1.grid(row=0,column=0)
i1=Label(add_frame,text="ID")
i1.grid(row=0,column=1)
t1=Label(add_frame,text="Topping")
t1.grid(row=0,column=2)
#adding entry boxes
name_box=Entry(add_frame)
name_box.grid(row=1,column=0)
id_box=Entry(add_frame)
id_box.grid(row=1,column=1)
topping_box = Entry(add_frame)
topping_box.grid(row=1,column=2)
def add_record():
global count
if count % 2 == 0:
my_tree.insert(parent='', index='end', iid=count, text="",
values=(name_box.get(), id_box.get(),topping_box.get()),tags=('evenrow'))
else:
my_tree.insert(parent='', index='end', iid=count, text="",
values=(name_box.get(), id_box.get(), topping_box.get()), tags=('oddrow'))
count += 1
#Clear the boxes
name_box.delete(0,END)
id_box.delete(0,END)
topping_box.delete(0,END)
#remove all records
def remove_all():
for record in my_tree.get_children():
my_tree.delete(record)
#remove one selected
def remove_one():
x=my_tree.selection()[0]
my_tree.delete(x)
#def remove_many
def remove_many():
x=my_tree.selection()
for record in x:
my_tree.delete(record)
def select_record(event):
name_box.delete(0,END)
id_box.delete(0,END)
topping_box.delete(0,END)
#GRAB RECORD NUMBER
selected=my_tree.focus()
#grab record values
values=my_tree.item(selected,'values')
#temp_label.config(text=values[0])
#output to entry boxes
name_box.insert(0,values[0])
id_box.insert(0, values[1])
topping_box.insert(0, values[2])
def update_record():
selected=my_tree.focus()
my_tree.item(selected,text="", values=(name_box.get(),id_box.get(),topping_box.get()))
name_box.delete(0, END)
id_box.delete(0, END)
topping_box.delete(0, END)
#buttons
select_button=Button(root,text="Select Record",command=select_record)
select_button.pack()
update_button=Button(root,text="Update Record",command=update_record)
update_button.pack()
add_record=Button(root,text="Add Record",command=add_record)
add_record.pack()
#remove all
remove_all=Button(root,text="Remove all records",command=remove_all)
remove_all.pack()
#remove one
remove_one=Button(root,text="Remove One Record",command=remove_one)
remove_one.pack()
#remove many selected
remove_many=Button(root,text="remove many selected",command=remove_many)
remove_many.pack()
temp_label=Label(root,text="")
temp_label.pack()
my_tree.bind("<ButtonRelease-1>",select_record)
root.mainloop()

Comments
Post a Comment