gui-db/main.py

140 lines
4.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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('<KeyPress-F1>', key_pressed)
root.bind('<KeyPress-F2>', key_pressed)
root.bind('<KeyPress-F3>', key_pressed)
root.bind('<KeyPress-F4>', key_pressed)
root.bind('<KeyPress-F10>', key_pressed)
root.bind('<Control-x>', 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("<<ListboxSelect>>", 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()