duda con GUI
Publicado por rosa (11 intervenciones) el 29/04/2009 18:21:27
hola,
supongo que la duda que tengo es muy tonta, pero al no dominar ni el ingles ni las funciones de MATLAB, me resulta muy dificil contestarmela yo misma y eso que he intentado mil y una cosas.
Bueno, mi duda es la siguiente: Empiezo mi programa con una GUI que se queda abierta durante el tiempo que dura la simulacion. Al terminar mi programa pregunto si quiere volver a simular de nuevo, y en caso afirmativo, me gustaria que abriese la GUI que ya tengo abierta, pero aun despues de haber intentado un monton de historias no lo consigo.
esto es lo que tengo:
function data=Start_sim(Action,arg1)
if ~nargin
clear all;
clc;
Action = 'init';
end;
switch Action
case 'init'
sim_gui;
case 'Simulate'
Y_st = str2num(get(arg1.Year_Start_edit,'String'));
M_st = str2num(get(arg1.Month_Start_edit,'String'));
D_st = str2num(get(arg1.Day_Start_edit,'String'));
h_st = str2num(get(arg1.hour_Start_edit,'String'));
m_st = str2num(get(arg1.min_Start_edit,'String'));
s_st = str2num(get(arg1.sec_Start_edit,'String'));
Y_en = str2num(get(arg1.Year_End_edit,'String'));
M_en = str2num(get(arg1.Month_End_edit,'String'));
D_en = str2num(get(arg1.Day_End_edit,'String'));
h_en = str2num(get(arg1.hour_End_edit,'String'));
m_en = str2num(get(arg1.min_End_edit,'String'));
s_en = str2num(get(arg1.sec_End_edit,'String'));
Freq = str2num(get(arg1.Hz_edit,'String'));
chekbox_sim = get(arg1.SeeSimulation_chekbox,'Value');
sat_main('Simulate',Y_st,M_st,D_st,h_st,m_st,s_st,Y_en,M_en,D_en,h_en,m_en,s_en,Freq,chekbox_sim);
case 'continue'
answer=questdlg('Do you want to simulate again?','Simulation','Yes','No','No');
switch answer
case 'No'
h = msgbox('Simulation ist beendet');
case 'Yes'
sim_gui; %si contesto que quiero simular de nuevo,
end
otherwise
error('Function doesn´t exit');
end
%os pongo solo el principio de la funcion, el resto es simplemente la creacion del menu
function sim_gui
%warning off
if isempty(findobj(0,'Tag','simulation_gui'))
fighandle = figure('Name','simulation_gui','Tag','simulation_gui');
else
%AQUI ME GUSTARIA QUE ME ABRIESE LA GUI QUE YA TENGO CREADA;EN LUGAR DE QUE ME MANDASE EL MENSAJE DE ERROR DE QUE YA TENGO UNA
errordlg('There is already a simulation window open')
return;
end;
espero que sepais algo, porque yo no encuentro nada factible en la ayuda de matlab, y no se como formular la pregunta en otro idioma. Gracias
supongo que la duda que tengo es muy tonta, pero al no dominar ni el ingles ni las funciones de MATLAB, me resulta muy dificil contestarmela yo misma y eso que he intentado mil y una cosas.
Bueno, mi duda es la siguiente: Empiezo mi programa con una GUI que se queda abierta durante el tiempo que dura la simulacion. Al terminar mi programa pregunto si quiere volver a simular de nuevo, y en caso afirmativo, me gustaria que abriese la GUI que ya tengo abierta, pero aun despues de haber intentado un monton de historias no lo consigo.
esto es lo que tengo:
function data=Start_sim(Action,arg1)
if ~nargin
clear all;
clc;
Action = 'init';
end;
switch Action
case 'init'
sim_gui;
case 'Simulate'
Y_st = str2num(get(arg1.Year_Start_edit,'String'));
M_st = str2num(get(arg1.Month_Start_edit,'String'));
D_st = str2num(get(arg1.Day_Start_edit,'String'));
h_st = str2num(get(arg1.hour_Start_edit,'String'));
m_st = str2num(get(arg1.min_Start_edit,'String'));
s_st = str2num(get(arg1.sec_Start_edit,'String'));
Y_en = str2num(get(arg1.Year_End_edit,'String'));
M_en = str2num(get(arg1.Month_End_edit,'String'));
D_en = str2num(get(arg1.Day_End_edit,'String'));
h_en = str2num(get(arg1.hour_End_edit,'String'));
m_en = str2num(get(arg1.min_End_edit,'String'));
s_en = str2num(get(arg1.sec_End_edit,'String'));
Freq = str2num(get(arg1.Hz_edit,'String'));
chekbox_sim = get(arg1.SeeSimulation_chekbox,'Value');
sat_main('Simulate',Y_st,M_st,D_st,h_st,m_st,s_st,Y_en,M_en,D_en,h_en,m_en,s_en,Freq,chekbox_sim);
case 'continue'
answer=questdlg('Do you want to simulate again?','Simulation','Yes','No','No');
switch answer
case 'No'
h = msgbox('Simulation ist beendet');
case 'Yes'
sim_gui; %si contesto que quiero simular de nuevo,
end
otherwise
error('Function doesn´t exit');
end
%os pongo solo el principio de la funcion, el resto es simplemente la creacion del menu
function sim_gui
%warning off
if isempty(findobj(0,'Tag','simulation_gui'))
fighandle = figure('Name','simulation_gui','Tag','simulation_gui');
else
%AQUI ME GUSTARIA QUE ME ABRIESE LA GUI QUE YA TENGO CREADA;EN LUGAR DE QUE ME MANDASE EL MENSAJE DE ERROR DE QUE YA TENGO UNA
errordlg('There is already a simulation window open')
return;
end;
espero que sepais algo, porque yo no encuentro nada factible en la ayuda de matlab, y no se como formular la pregunta en otro idioma. Gracias
Valora esta pregunta


0