Menu Gui - how to have the menu box always displayed

I have the following function:
function menu_plot_results(Data,Index)
option = menu('plot data',...
'Exit',...
'Close All',...
'aaaa',...
'bbbb',...
'cccc');
switch option
case 1 %Exit
case 2 %Close All
case 3 %aaaa
case 4 %bbbb
case 5 %cccc
end
cases 3-5 create plots of data. Once the figures are created, I would like the menu to re-appear, so that additional plots can be created.
Thanks
Chris

 채택된 답변

Matt Tearle
Matt Tearle 2012년 3월 29일

0 개 추천

Unfortunately [voice = Morbo] menu does not work that way [/voice]. There are two alternatives I can think of: 1) use menu within a function called from a wrapper/control function, or 2) write an actual gui yourself. If you take route 2, you associate callbacks with each button; callback 1 will actually delete the menu window (all the others will leave there). Option 1 is less pretty, but also less work:
function menu_plot_results(Data,Index)
doagain = true;
while doagain
option = makemenu(Data,Index);
if option ==1
doagain = false;
end
end
function option = makemenu(Data,Index)
option = menu('plot data',...
'Exit',...
'Close All',...
'aaaa',...
'bbbb',...
'cccc');
switch option
case 1 %Exit
case 2
close all
case 3
figure
plot(Data)
case 4
disp(Index)
case 5
disp('Hello world')
end

댓글 수: 2

My vote also goes for Route 2!
Guaranteed to be faster, easier, and less chaotic than Route 9.
Yeah, but so is a world war.
(Explanation for everyone else: Route 9 -> Boston-area humor...)

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

추가 답변 (2개)

Sean de Wolski
Sean de Wolski 2012년 3월 29일

0 개 추천

I'm not clear on this:
You have a menu, you have it generate a figure, but then it closes and you want it to stay open?
After the plot, just have it call itself again.
function mpr(Data,Index)
option = menu('plot data',...
'Exit',...
'Close All',...
'aaaa',...
'bbbb',...
'cccc');
switch option
case 1 %Exit
case 2 %Close All
close all
case 3 %aaaa
figure;
peaks;
mpr;
case 4 %bbbb
figure;
image;
mpr;
case 5 %cccc
figure;
membrane;
mpr;
end
Or, and this is the route I would take, don't use menu() just hard code your own GUI with a few UICONTROLS and then it doesn't have to close.

댓글 수: 1

I wondered about this... This is probably fine, but I don't like the recursiveness -- if you make 15 plots, you're actually 15 function calls deep, until you finally exit and they all collapse back out.

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

Chris
Chris 2012년 3월 30일

0 개 추천

Thankyou for the replies. I used Matt's solution, worked very well.

카테고리

도움말 센터File Exchange에서 Creating, Deleting, and Querying Graphics Objects에 대해 자세히 알아보기

태그

질문:

2012년 3월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by