Save / Load Gui handles

7 visualizzazioni (ultimi 30 giorni)
Pablo Jeken Rico
Pablo Jeken Rico il 16 Lug 2018
Commentato: Pablo Jeken Rico il 30 Nov 2018
Hi, I have written a GUI (guide) with lots of buttons and settings. I want to save the states and load them with the same gui. Unaffortunately if I save handles and load it, a new figure (or several figures) with the settings appear. How can I avoid it?
I also noticed, that the structure I load into the gui is written into the workspace after the callback is completed. The gui just recognises the struct as an empty struct.
Save state (inside save button Callback)
seq = handles;
save(filename,'seq');
end
Load state (inside load button callback)
seq = matfile(filename,'Writable',true);
handles = setSequency(hObject,handles,seq); % Sees seq as an empty struct
end
  2 Commenti
Marc Youcef
Marc Youcef il 27 Nov 2018
Same problem here as well. I would like to avoid having to get data from all GUI components using get function, store them, then load them and fill all the GUI components with set function.
Ideally I would like to do as you but I save it into .MAT file and it is able to load then the GUI but I lose any link with my main program.
Any help is appreciated.
Thanks.
Marc.
Luna
Luna il 27 Nov 2018
Hi There! Same problem for me too!.
I have asked a similar question with my codes are attached below link.
It is a small app which adds people and their information to the table by a small settings window. After adding some people rows, I click on a table row then click edit button, I want to get the same settings window filled with corresponding user informations.
I have a lot of popup menu's, so each time set all and calculate popup menu's index and assign the value causes too much complexity.
There should be an easy way to save it like a screenshot. Any help is appreciated!!
Thank you!

Accedi per commentare.

Risposta accettata

Marc Youcef
Marc Youcef il 30 Nov 2018
Hi, after a long discussion with Mathworks support, it seems that there is no ways to save/load a figure handle directly and still access to the main output call of the UI like : Output=MyUI(SavedHandle).
You have to write loops to save each and every variable from your GUI into a MAT file and then load them to finally set again each and every control from your GUI to the loaded variable.
Not convenient at all.
  2 Commenti
Luna
Luna il 30 Nov 2018
Yes, exactly I have searched that aswell and there is no easy way to do it.
Faster and easiest way is creating the array of ui elements and assign the values with a for loop.
But most of the times ui elements styles will be different so this can create a complexity.
Pablo Jeken Rico
Pablo Jeken Rico il 30 Nov 2018
I think this could be a nice improvement to GUIs...

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Migrate GUIDE Apps in Help Center e File Exchange

Prodotti


Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by