MATLAB Answers

GUI error after saving as in another name

13 views (last 30 days)
I have a GUI in name of 'gui1'. I saved it as 'gui2'. So, 'gui2.m' and 'gui2.fig' have been make. Now, when I run 'gui2.fig', it errors:
??? Error using ==> struct2handle
Undefined function or method 'gui1' for input arguments of type 'char'.
??? Error using ==> struct2handle
Error while evaluating uicontrol CreateFcn
I think when saving as 'gui2', callbacks of some objects (gui elements like push-button,...) remain on 'gui1'. There are too many elements (push-buttons,...) in GUI that I can't change callback of all of them one by one.
Is there any way for setting all objects callback to 'gui2' entirely?

  2 Comments

mohammad
mohammad on 8 Aug 2012
Is it possible the problem to be caused from another thing? and my thinking be wrong?

Sign in to comment.

Accepted Answer

Sean de Wolski
Sean de Wolski on 10 Aug 2012
Did you resave the GUI from within GUIDE? You have to, you cannot just rename it in an explorer window.

  3 Comments

mohammad
mohammad on 10 Aug 2012
Thanks for reply. First I open "gui1.fig" in guide then from 'file' tab I select 'save as' and then save it in name of 'gui2'. Is this work wrong?
Sean de Wolski
Sean de Wolski on 10 Aug 2012
No. This is correct. I would repeat the process. Try again: rename btoh files to their original names in an identical directory. Then open the figure in GUIDE and "Save As" etc.
mohammad
mohammad on 10 Aug 2012
So great!!! Thanks This works properly. But for what and how do renaming and then 'save as' solve the problem?!

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 10 Aug 2012
It's possible that if you changed something in the GUI manually, like you added a layout function or something, that there is a gui1 in a string somewhere that doesn't get changed when you save it as gui2. After you save it, open gui2.m in the editor and use the search and replace utility to change all gui1 to gui2 in the m-file and then try it.

  4 Comments

Show 1 older comment
Image Analyst
Image Analyst on 10 Aug 2012
Well I do it all the time and it works. Are you telling me that you get an error that mentions gui1 when you're running gui2? If so, then gui1 must either be in the m-file somewhere, or in the properties (callback properties especially) of your gui controls in GUIDE.
Sean de Wolski
Sean de Wolski on 10 Aug 2012
I would guess the first attempt at renaming broke it. This would explain why unrenaming manually and then renaming in GUIDE would fix it...
mohammad
mohammad on 10 Aug 2012
OK, really thanks Sean so many thanks.

Sign in to comment.

Sign in to answer this question.