diff --git a/main.py b/main.py index 3fe2397..49ad54c 100644 --- a/main.py +++ b/main.py @@ -4,11 +4,15 @@ from copy import deepcopy import PySimpleGUI as sg from tinydb import TinyDB, Query +TABLE=None +WINDOW=None # Define the window's contents colum_lut = ["Serial Number","Brand","Grade","Name"] layout = [[sg.Menu([['File', ['Open', 'Save', 'Add Computer','Remove Computer']]])], - [sg.Table([["word","Yes"]],colum_lut,key = "table")], + [sg.Text("search"), sg.Input(s=(35,))], + [sg.Input(s=(19,)),sg.Input(s=(6,)),sg.Input(s=(6,)),sg.Input(s=(4,))], + [sg.Table([["word","Yes"]],colum_lut,key = "table", enable_events=True)], [sg.Text("Serial Number")], [sg.Input(key='Serial Number')], [sg.Text("Brand")], @@ -30,6 +34,15 @@ add_computer_layout = [[sg.Text("Serial Number")], [sg.Input(key='Name')], [sg.Button('Add Computer'),]] +def double_click(event): + """ + Additional event for double-click on header + event: class event + """ + region = TABLE.identify("region", event.x, event.y) + if region == 'heading': # Only care double-clock on headings + cid = int(TABLE.identify_column(event.x)[1:])-1 # check which column clicked + WINDOW.write_event_value("-TABLE-DOUBLE-CLICK-", cid) def add_computer(): window = sg.Window('Add Computer', deepcopy(add_computer_layout)) @@ -43,6 +56,7 @@ def add_computer(): def main(): """Core of ComputerKeeper - The Main Application.""" + global TABLE,WINDOW db= TinyDB("./db.json") Computer = [] for item in db.all(): @@ -52,7 +66,12 @@ def main(): Computer.append(The_Device) # Create the window window = sg.Window('Window Title', layout, finalize=True) + WINDOW=window window["table"].update(Computer) + table = window['table'].Widget + table.bind('', double_click, add='+') + TABLE=table + # Display and interact with the Window using an Event Loop while True: @@ -73,6 +92,12 @@ def main(): query = Query() db.remove(query["Serial Number"] == serial) window["table"].update(existing_table) + elif event == '-TABLE-DOUBLE-CLICK-': + column = values[event] + print(f'Click on column {column}') + # Sort data on the table by the value of column + # then update window['-TABLE-'].update(values=new_data) + # Finish up by removing from the screen window.close()