I had wrote a function for searching names and various infos saved on a csv file.
Basically it works, but it just bring up the result on the top of the treeview only if I wrote the whole name or else and not while I’m still typing on the keyboard. Then, I would that during the search, the other infos in the list disappear temporary from the screen until I digit something else.
Here’s my code:
from tkinter import *
from tkinter import ttk
import csv
root = Tk()
frm_infospiti = Frame(root)
frm_infospiti.pack()
def elenco_completo():
def chiudi_elenco():
frm_infospiti.destroy()
def cerca(*args):
item_trv = tree_colonne.get_children()
trova_digit = dato_da_cercare.get().capitalize()
for oggetto in item_trv
if trova_digit in tree_colonne.item(oggetto)['values']:
search_var = tree_colonne.item(oggetto)['values']
tree_colonne.insert("", 0, values=(search_var))
colonne = ["Cognome", "Nome", "Data di nascita"]
tree_colonne = ttk.Treeview(frm_infospiti, selectmode='extended', height=15)
tree_colonne['columns'] = colonne
with open('/path/to/file.csv', 'r', encoding='UTF-8') as elenco:
lettore_elenco = csv.reader(elenco)
for row in lettore_elenco:
cognome = row[0]
nome = row[1]
nascita = row[2]
tree_colonne.insert("", 0, values=(cognome, nome, nascita))
for each in elenco:
tree_colonne.insert("", END, values=[each])
dato_da_cercare = StringVar()
entry = Entry(frm_infospiti, width=25, borderwidth=4, textvariable=dato_da_cercare)
entry.pack(side='top')
dato_da_cercare.trace('w', cerca)
for i in colonne:
tree_colonne.column(i)
tree_colonne.heading(i)
tree_colonne['show'] = 'headings'
tree_colonne.column('#0')
tree_colonne.heading('#0')
tree_colonne.column('#1')
tree_colonne.heading('#1', text="Cognome")
tree_colonne.column('#2')
tree_colonne.heading('#2', text="Nome")
tree_colonne.column('#3')
tree_colonne.heading('#3', text="Data di nascita")
tree_colonne.pack()
puls_chiudi_elenco = Button(frm_infospiti, text="Chiudi", command=chiudi_elenco)
puls_chiudi_elenco.pack()
if __name__=='__main__':
root.mainloop()
How can I implement other functionalities described as above?