From d43daf1099355be7472b9ef71b2e533de52a15e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=B6ll=C5=91d=20Csaba?= <kollod.csaba@itk.ppke.hu> Date: Thu, 5 Jan 2023 17:55:34 +0100 Subject: [PATCH] New feature: GUI --- mcc-flow/gui.py | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 mcc-flow/gui.py diff --git a/mcc-flow/gui.py b/mcc-flow/gui.py new file mode 100644 index 0000000..8b394af --- /dev/null +++ b/mcc-flow/gui.py @@ -0,0 +1,50 @@ +from tkinter import Tk, filedialog, messagebox + + +def show_message(message, title='BCI'): + root = Tk() + root.withdraw() + messagebox.showinfo(title=title, message=message) + root.destroy() + + +def select_files_in_explorer(init_dir='./', message='Select an EEG file!', file_type="EEG files", + ext=".vhdr;*.edf;*.gdf;*.fif;*.xdf", no_file_error=True): + root = Tk() + root.withdraw() + messagebox.showinfo(title='BCI', message=message) + extension = ext if ext[0] == '.' else '.' + ext + filenames = filedialog.askopenfilenames(title='Select file', + initialdir=init_dir, + filetypes=((file_type, "*{}".format(extension)), ("all files", "*.*"))) + root.destroy() + if no_file_error: + assert len(filenames) > 0, 'No file were selected...' + return filenames + + +def select_folder_in_explorer(message, dialog_title, title='BCI', no_dir_error=True): + root = Tk() + root.withdraw() + messagebox.showinfo(title=title, message=message) + base_dir = filedialog.askdirectory(title=dialog_title) + + root.destroy() + if no_dir_error: + assert len(base_dir) > 0, 'Base directory is not selected. Cannot run program!' + return base_dir + + +def select_base_dir(): + base_dir = select_folder_in_explorer(message='Select base directory, which contains all the database folders:\n' + '- BCI_comp\n' + '- Cybathlon_pilot\n' + '- physionet.org\n' + '- TTK', + dialog_title='Select main database directory') + return base_dir + + +if __name__ == '__main__': + path = select_base_dir() + print(select_files_in_explorer(path)) -- GitLab