#!/usr/bin/env python import PySimpleGUI as sg import os.path # First the window layout in 2 columns file_list_column = [ [sg.Text("Image Folder"), sg.In(size=(25, 1), enable_events=True, key="-FOLDER-"), sg.FolderBrowse(),], [sg.Listbox(values=[], enable_events=True, size=(40, 20), key="-FILE LIST-")], ] # For now will only show the name of the file that was chosen image_viewer_column = [ [sg.Text("Choose an image from list on left:")], [sg.Text(size=(40, 1), key="-TEXT-")], [sg.Image(key="-IMAGE-")], ] # ----- Full layout ----- layout = [ [sg.Column(file_list_column), sg.VSeperator(), sg.Column(image_viewer_column),] ] window = sg.Window("Column Demo", layout) # Run the Event Loop while True: event, values = window.read() if event == "Exit" or event == sg.WIN_CLOSED: break # Folder name was filled in, make a list of files in the folder if event == "-FOLDER-": folder = values["-FOLDER-"] try: # Get list of files in folder file_list = os.listdir(folder) except: file_list = [] fnames = [ f for f in file_list if os.path.isfile(os.path.join(folder, f)) and f.lower().endswith((".png", ".gif")) ] window["-FILE LIST-"].update(fnames) elif event == "-FILE LIST-": # A file was chosen from the listbox try: filename = os.path.join(values["-FOLDER-"], values["-FILE LIST-"][0]) window["-TEXT-"].update(filename) window["-IMAGE-"].update(filename=filename) except: pass window.close()