Matlab - Intercambio de datos entre ventanas gui.

 
Vista:

Intercambio de datos entre ventanas gui.

Publicado por Puri (3 intervenciones) el 11/09/2006 14:35:08
Hola,
mi problema es el siguiente, tengo una ventana (ventana1) desde la que llamo a otra ventana (ventana2), esto lo hago bien, pero quiero que cuando cierre la ventana2 ciertos valores de esta ventana se pasen a la ventana1, no sé si como argumentos de salida, pero esto lo he intentado hacer de un montón de maneras y no lo he conseguido, ¿puede alguien echarme una mano?

Gracias de antemano.
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
sin imagen de perfil

RE:Intercambio de datos entre ventanas gui.

Publicado por Edgae Muñoz (62 intervenciones) el 11/09/2006 20:07:23
Puedes utilizar la variable varargout, aquí debes almacenar todos los valores que deseas devolver como argumentos de salida. Creo que esto se hace en la OutputFcn.

Lo mejor es crear un diálogo Yes/No utilizando el asistente GUIDE, aquí puedes ver exactamente cómo se hace, pues este diálogo devuelve 'Yes' o 'No' cuando se presiona el botón correspondiente.
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

RE:Intercambio de datos entre ventanas gui.

Publicado por Puri (3 intervenciones) el 13/09/2006 09:15:21
Muchas gracias por el consejo.
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

RE:Intercambio de datos entre ventanas gui.

Publicado por Edwin Alberto Garavito (2 intervenciones) el 25/09/2006 22:59:46
Hay varias cosas que puedes hacer, en primer lugar, para llamar la vetnana2 usas en la ventana1 en la funcion donde quieres hacerlo (puede ser un boton o un menu):
user_response=VENTANA2
variables=user_response
d1=variables.d1
d2=varables.d2

con esto, variables asume toda la estructura de handles que viene de ventana 2 para ser usada ejemplo:
d1=variables.d1
d2=varables.d2
d3=d2+d1

y en el GUI (ventana 2), tendrias que cambiar algunas cosas.
Primero, en la función ventan2_OpeningFcn
colocar los suiguientes comandos

handles.output = [];
guidata(hObject, handles);
uiwait(handles.figure1);

luego en OutputFcn de ventana2

function varargout = ventan2_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
delete(handles.figure1);

finalmente si es a traves de un boton OK o algo asi que queires cerrar ventana 2 y volver a ventana1, en el Callback de este boton creas la estructura de handles pero asociada a output ej:

handles.output.d1 = d1
handles.output.d2 = d2
handles.output.result = result
guidata(hObject, handles);
uiresume(handles.figure1);

esto hace que se lleve el valor de d1, d2, result....
el UIRESUME hace que al cerrar quede activa la ventana1

En la ventana 1 se puede usar estas variables, antes, al cimienzo habia mencionado como hacer para usarlas
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

RE:Intercambio de datos entre ventanas gui.

Publicado por montserrat (1 intervención) el 07/12/2007 16:12:51
Muchas gracias por esta información, me ahorró mucho tiempo ;)
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