from tkinter import * from tkinter import ttk import configparser import db from PIL import ImageTk, Image root = None database = None config = None listbox = None image_label = None desc_label = None img = None def load_config(): global config config = configparser.ConfigParser() config.read('cfg.ini') print(config['DEFAULT']['db_path']) def load_database(): global database, config database = db.DB(config['DEFAULT']['db_path']) def help_menu(): global root newWindow = Toplevel(root) newWindow.title("New Window") newWindow.geometry("200x200") Label(newWindow, text ="This is a new window").pack() def fond_menu(): global root newWindow = Toplevel(root) newWindow.title("New Window") newWindow.geometry("200x200") Label(newWindow, text ="This is a new window").pack() def close_prog(event): exit() def key_pressed(event): print(event.keysym) if event.keysym == 'F1': print("Клавиша 'F1' была нажата") if event.keysym == 'F2': print("Клавиша 'F2' была нажата") if event.keysym == 'F3': print("Клавиша 'F3' была нажата") if event.keysym == 'F4': print("Клавиша 'F4' была нажата") def selected(event): global listbox, image_label, desc_label, img print(event) # получаем индексы выделенных элементов selected_indices = listbox.curselection() # получаем сами выделенные элементы selected = ''.join([listbox.get(i) for i in selected_indices]) for record in database.records: if record.name == selected: print(record.img_path) img = ImageTk.PhotoImage(Image.open(record.img_path)) image_label.config(image=img) # image_label.pack() desc_label.insert(1.0,record.description) def main(): global root, listbox, database, image_label, desc_label load_config() load_database() root = Tk() root.title("amDB") root.geometry('600x400+50+50') root.minsize(700, 500) root.bind('', key_pressed) root.bind('', key_pressed) root.bind('', key_pressed) root.bind('', key_pressed) root.bind('', key_pressed) root.bind('', close_prog) for c in range(3): root.columnconfigure(index=c, weight=1) for r in range(2): root.rowconfigure(index=r, weight=1) main_menu = Menu() fond_menu = Menu(tearoff=0) fond_menu.add_command(label="Найти...") fond_menu.add_separator() fond_menu.add_command(label="Добавить") fond_menu.add_command(label="Удалить") fond_menu.add_command(label="Изменить") fond_menu.add_separator() fond_menu.add_command(label="Выход") help_menu = Menu(tearoff=0) help_menu.add_command(label="Содержание") help_menu.add_separator() help_menu.add_command(label="О программе") main_menu.add_cascade(label="Фонд", menu=fond_menu) main_menu.add_cascade(label="Справка", menu=help_menu) label_bottom = Label(root, text="F1-справка F2-добавить F3-удалить F4-изменить F10-меню", bd=1, relief=SUNKEN, anchor=W, height=1) label_bottom.place(relx=0.0, rely=0.95, relwidth=1) listbox = Listbox(root, justify="left",width=30) listbox.bind("<>", selected) listbox.place(x=0,y=0, relheight=0.95) for i in range(len(database.records)): listbox.insert(i, database.records[i].name) image_frame = ttk.Frame(root) image_label = Label(image_frame, text="Hello Tkinter", borderwidth=2) image_label.place(relx=0.0, rely=0.0, relheight=1.0, relwidth=1.0) image_frame.place(relx=0.35, rely=0.0,relheight=0.95, relwidth=0.3) desc_frame = ttk.Frame(root) desc_label = Text(desc_frame, wrap="word") desc_label.insert(1.0, "test") desc_label.place(relx=0.0, rely=0.0, relheight=1.0, relwidth=1.0) desc_frame.place(relx=0.7, rely=0.0, relwidth=0.3, relheight=0.95) root.config(menu=main_menu) root.mainloop() if __name__ == "__main__": main()