From: Adam Smith on
Hi everyone,

I was trying to produce a GUI that would have multiple pages or slides...sort of like a powerpoint...that would allow users to move on to the next GUI page depending on the selections they made on the previous GUI page.

I would appreciate the help in figuring out how to get such a connected, multi-page GUI assembled.

Thanks,
Adam
From: Yair Altman on
"Adam Smith" <netwave3000(a)hotmail.com> wrote in message <hodhns$c37$1(a)fred.mathworks.com>...
> Hi everyone,
>
> I was trying to produce a GUI that would have multiple pages or slides...sort of like a powerpoint...that would allow users to move on to the next GUI page depending on the selections they made on the previous GUI page.
>
> I would appreciate the help in figuring out how to get such a connected, multi-page GUI assembled.
>
> Thanks,
> Adam


Multi-page GUIs can be designed as separate pages (using GUIDE or via standard Matlab programming functions) that are connected with callbacks set on the Back/Next/Finish/Cancel buttons, which are typically located at the bottom of the GUI.

Another option that you may find interesting to explore, is to look at the undocumented built-in wizard function. This function implements the framework for multi-page Java-based GUIs. You will need to edit wizard.m to remove all the warning messages and the comments on the actual code...

MathWorks suggests that GUIDE should be used as a direct replacement for wizard. However, design of multi-page wizards using GUDE can be a painful exercise. Therefore, it is hoped that a future Matlab version will restore a supported Matlab-based wizard. I plan to submit a pure-Matlab wizard implementation to the File Exchange sometime in the future.

Yair Altman
http://UndocumentedMatlab.com
From: Walter Roberson on
Adam Smith wrote:
> Hi everyone,
>
> I was trying to produce a GUI that would have multiple pages or
> slides...sort of like a powerpoint...that would allow users to move on
> to the next GUI page depending on the selections they made on the
> previous GUI page.

In addition to the other advice that you were given:

- you can use GUIDE or programmatically create all of the pages in individual
figures, and then set the other figures to 'Visible', 'off'

- you can create a number of uipanel() that are all in the same position in a
figure, and then use uistack() or set() order of the 'Children' of the figure
to make the desired panel the top panel.

- you can use the undocumented uitabgroup() and uitab() functions