Matlab - callback uimenu

 
Vista:
Imágen de perfil de Ricardo
Val: 60
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

callback uimenu

Publicado por Ricardo (42 intervenciones) el 01/08/2017 09:00:32
buen dia programadores tengo la siguiente duda.

Tengo el siguiente codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function amortig
    %LIMPIO
    clc
    clear
    %CREO FIGURA
    f=figure('toolbar','none','MenuBar','None','units','normalized','position',[0.1,0.1,0.8,0.8]);
    %CREO MENUS
    mh1=uimenu(f,'Label','Archivo');
    mh2=uimenu(f,'Label','Definir','visible','off');
    mh3=uimenu(f,'Label','Asignar','visible','off');
    mh4=uimenu(f,'Label','Analisis','visible','off');
    %CREO SUBMENUS
    mh11=uimenu(mh1,'Label','Nuevo');
    mh12=uimenu(mh1,'Label','Salir');
    mh21=uimenu(mh2,'Label','Distancias');
    mh22=uimenu(mh2,'Label','Material');
    mh23=uimenu(mh2,'Label','Seccion');
    mh31=uimenu(mh3,'Label','Carga');
    mh32=uimenu(mh3,'Label','Refuerzo');
    mh33=uimenu(mh3,'Label','Algoritmo');
    mh41=uimenu(mh4,'Label','Restriccion');
    mh42=uimenu(mh4,'Label','Numeracion');
    mh43=uimenu(mh4,'Label','Resolucion lineal');
    mh44=uimenu(mh4,'Label','Test convergencia');
    mh45=uimenu(mh4,'Label','Algoritmo');
    mh46=uimenu(mh4,'Label','Integrador');
    mh47=uimenu(mh4,'Label','Integrador');
end

1. al presionar mh11 ('nuevo') quiero que haga visible el uimenu correspondiente a la variable mh2, como puedo hacerlo?

2. soy algo nuevo en esta clase de programacion, digamos que presiono el boton distancias (mh21) y quiero crear en el "guide" un boton y un axes como lo puedo hacer?

3. complementando la pregunta anterior es posible que al presionar diferentes botones, la estructura del guide cambie, digamos que con una opcion creo un boton y con otra creo una lista (borrando el boton) pero en diferente posicion o tendria que crear varios guides aparte y llamarlos por separado?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

callback uimenu

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 01/08/2017 17:07:04
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
%LIMPIO
function amortig
clc
clear
%CREO FIGURA
f=figure('toolbar','none','MenuBar','None','units','normalized','position',[0.1,0.1,0.8,0.8]);
%CREO MENUS
mh1=uimenu(f,'Label','Archivo');
mh2=uimenu(f,'Label','Definir','visible','off');
mh3=uimenu(f,'Label','Asignar','visible','off');
mh4=uimenu(f,'Label','Analisis','visible','off');
%CREO SUBMENUS
mh11=uimenu(mh1,'Label','Nuevo','Callback',{@hazlo,mh2});
mh12=uimenu(mh1,'Label','Salir');
mh21=uimenu(mh2,'Label','Distancias','Callback',{@crear f});
mh22=uimenu(mh2,'Label','Material');
mh23=uimenu(mh2,'Label','Seccion');
mh31=uimenu(mh3,'Label','Carga');
mh32=uimenu(mh3,'Label','Refuerzo');
mh33=uimenu(mh3,'Label','Algoritmo');
mh41=uimenu(mh4,'Label','Restriccion');
mh42=uimenu(mh4,'Label','Numeracion');
mh43=uimenu(mh4,'Label','Resolucion lineal');
mh44=uimenu(mh4,'Label','Test convergencia');
mh45=uimenu(mh4,'Label','Algoritmo');
mh46=uimenu(mh4,'Label','Integrador');
mh47=uimenu(mh4,'Label','Integrador');
end
function hazlo(~,~,m)
set(m,'Visible','on')
end
function crear(~,~,f)
	uicontrol(f,'Style','pushbutton','String','Clic','Position',[50 50 100 200])
uicontrol(f,'Style','pushbutton','String',' Otro Clic','Position',[250 50 100 200])
end


puedes borrar y escribir otros nuevos componentes en la misma figura solo que debes manejar muy bien esta clase de programación para que no tengas inconvenientes grandes
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar