я строю словарь tkinter gui со словами и значением в базе данных. Я хочу, чтобы список предлагал слова из базы данных для меня всякий раз, когда я набираю слово в поле ввода. Я видел код (второй код далеко внизу) в stackoverflow, который полезен, но я не знаю, как я могу использовать его с моим кодом. пожалуйста, как я могу использовать второй код для редактирования моего кода. пожалуйста, помогите мне.
Это мой код;
def search():
conn= sqlite3.connect('GS_DICTION.db')
cur= conn.cursor()
tex.delete(1.0,"end")
data=v.get()
cur.execute("SELECT Meaning, Image FROM DICTION WHERE Words= ?", (data,))
var= cur.fetchone()
if var:
tex.insert("end", var[0]) # accessing the meaning
else:
messagebox.showinfo("Dic","Word not found")
entry= tk.Entry(dictWin, width=20,font= ("Bahnschrift SemiLight",11), bg= "#FFFFFf",bd=2,
textvariable= v)
entry.place(x=50, y= 25)
listbox = tk.Listbox(dictWin, width=35)
listbox.place(x= 370, y=70)
Второй код, который я видел онлайн
import tkinter as tk
def on_keyrelease(event):
# get text from entry
value = event.widget.get()
value = value.strip().lower()
# get data from test_list
if value == '':
data = test_list
else:
data = []
for item in test_list:
if value in item.lower():
data.append(item)
# update data in listbox
listbox_update(data)
def listbox_update(data):
# delete previous data
listbox.delete(0, 'end')
# sorting data
data = sorted(data, key=str.lower)
# put new data
for item in data:
listbox.insert('end', item)
def on_select(event):
# display element selected on list
print('(event) previous:', event.widget.get('active'))
print('(event) current:', event.widget.get(event.widget.curselection()))
print('---')
# --- main ---
test_list = ('apple', 'banana','ban', 'Cranberry', 'dogwood', 'alpha', 'Acorn', 'Anise', 'Strawberry'
)
root = tk.Tk()
entry = tk.Entry(root)
entry.pack()
entry.bind('<KeyRelease>', on_keyrelease)
listbox = tk.Listbox(root)
listbox.pack()
#listbox.bind('<Double-Button-1>', on_select)
listbox.bind('<<ListboxSelect>>', on_select)
listbox_update(test_list)
root.mainloop()