Save / Load Gui handles

조회 수: 9 (최근 30일)
Pablo Jeken Rico
Pablo Jeken Rico 2018년 7월 16일
댓글: Pablo Jeken Rico 2018년 11월 30일
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
Marc Youcef
Marc Youcef 2018년 11월 27일
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 2018년 11월 27일
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!

댓글을 달려면 로그인하십시오.

채택된 답변

Marc Youcef
Marc Youcef 2018년 11월 30일
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
Luna
Luna 2018년 11월 30일
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 2018년 11월 30일
I think this could be a nice improvement to GUIs...

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Migrate GUIDE Apps에 대해 자세히 알아보기

제품


릴리스

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by