working search window

This commit is contained in:
vadzik 2023-12-18 13:19:08 +03:00
parent ad7754b38b
commit 90c44ff2a2
2 changed files with 53 additions and 7 deletions

BIN
AmDB.db

Binary file not shown.

60
main.py
View File

@ -14,6 +14,8 @@ image_label = None
desc_label = None desc_label = None
img = None img = None
fViewHelp = False fViewHelp = False
fViewSearch = False
current_select = None
def load_config(): def load_config():
@ -62,15 +64,60 @@ def key_pressed(event):
if event.keysym == 'F4': if event.keysym == 'F4':
update_record_window() update_record_window()
def search_window():
global listbox, fViewSearch
def on_search():
search_term = search_entry.get()
listbox.delete(0, END)
for item in original_list:
if search_term.lower() in item.lower():
listbox.insert(END, item)
def on_cancel():
global fViewSearch
search_window.destroy()
listbox.delete(0, END)
for item in original_list:
listbox.insert(END, item)
fViewSearch = False
if not fViewSearch:
fViewSearch = True
search_window = Toplevel()
search_label = Label(search_window, text="Поиск: ")
search_label.pack()
search_button = Button(search_window, text="Найти", command=on_search)
search_button.pack()
original_list = listbox.get(0, END)
search_entry = Entry(search_window)
search_entry.pack()
cancel_button = Button(search_window, text="Отмена", command=on_cancel)
cancel_button.pack()
search_window.protocol("WM_DELETE_WINDOW", on_cancel)
search_window.mainloop()
def selected(event): def selected(event):
global listbox, image_label, desc_label, img global listbox, image_label, desc_label, img, current_select
selected_indices = listbox.curselection() selected_indices = listbox.curselection()
selected = ''.join([listbox.get(i) for i in selected_indices]) selected = ''.join([listbox.get(i) for i in selected_indices])
record = database.get_record_by_name(selected) record = database.get_record_by_name(selected)
img = ImageTk.PhotoImage(Image.open(io.BytesIO(record.img))) if record != None and current_select != selected:
image_label.config(image=img) current_select = selected
desc_label.insert(1.0, record.description) img = ImageTk.PhotoImage(Image.open(io.BytesIO(record.img)))
image_label.config(image=img)
desc_label.delete(1.0, END)
desc_label.insert(1.0, record.description)
def add_record_window(event=""): def add_record_window(event=""):
@ -188,7 +235,6 @@ def load_listbox():
def open_help_window(): def open_help_window():
global fViewHelp global fViewHelp
print(fViewHelp)
def close_help(): def close_help():
global fViewHelp global fViewHelp
@ -270,13 +316,13 @@ def main():
main_menu = Menu() main_menu = Menu()
fond_menu = Menu(tearoff=0) fond_menu = Menu(tearoff=0)
fond_menu.add_command(label="Найти...") fond_menu.add_command(label="Найти...", command=search_window)
fond_menu.add_separator() fond_menu.add_separator()
fond_menu.add_command(label="Добавить", accelerator="F2", command=add_record_window) fond_menu.add_command(label="Добавить", accelerator="F2", command=add_record_window)
fond_menu.add_command(label="Удалить", accelerator="F3", command=confirm_delete) fond_menu.add_command(label="Удалить", accelerator="F3", command=confirm_delete)
fond_menu.add_command(label="Изменить", accelerator="F4", command=update_record_window) fond_menu.add_command(label="Изменить", accelerator="F4", command=update_record_window)
fond_menu.add_separator() fond_menu.add_separator()
fond_menu.add_command(label="Выход", accelerator="ctrl+X", command=close_prog) fond_menu.add_command(label="Выход", accelerator="Ctrl+X", command=close_prog)
help_menu = Menu(tearoff=0) help_menu = Menu(tearoff=0)
help_menu.add_command(label="Содержание", command=open_help_window) help_menu.add_command(label="Содержание", command=open_help_window)