Sep-22-2020, 05:17 PM
how can i use after() function to call the function with a slight delay
the insertion will have been handled, and entrySearchByName.get()
will return the full contents.
I want to create a Python search engine that will search for clients' names (from a sqlite3 database and display them on the Treeview object), search automatically without clicking on search Button (i.e. in real time). The code below allows a good search, but the problem is that it doesn't take into account the last letter typed.
example:
if I write in the search field 'Nam' it executes the search for 'Na' only. If I write in the search field 'Name' it performs the search for 'Nam' only (i.e. either press enter or a key so that it performs the search)
the insertion will have been handled, and entrySearchByName.get()
will return the full contents.
I want to create a Python search engine that will search for clients' names (from a sqlite3 database and display them on the Treeview object), search automatically without clicking on search Button (i.e. in real time). The code below allows a good search, but the problem is that it doesn't take into account the last letter typed.
example:
if I write in the search field 'Nam' it executes the search for 'Na' only. If I write in the search field 'Name' it performs the search for 'Nam' only (i.e. either press enter or a key so that it performs the search)
def SearchByName(event): for x in Tree.get_children(): Tree.delete(x) Name = entrySearchByName.get() conn = sqlite3.connect('database.db') cur = conn.cursor() SQL = "SELECT*FROM customers where Name LIKE ?" Wc_Name = "%{}%".format(Name) select = cur.execute(SQL, (Wc_Name,)) select =list(select) conn.commit() for row in select: Tree.insert('', END, values = row) conn.close() lbSearchByName = Label(root, text="Search By Name :", font=("Times New Roman",18)) lbSearchByName.place(x=540, y=2) entrySearchByName = Entry(root) entrySearchByName.place(x=730, y=7, width=250, height=25) entrySearchByName.bind("<Key>", SearchByName)