Matlab - (GUI) Gestion button group

 
Vista:

(GUI) Gestion button group

Publicado por rober (14 intervenciones) el 28/09/2006 11:19:04
Hola estoy haciendo una gui y he creado un button group, que consta de 2 radio button, el cual trato de gestionar con algo así :

function uipanel4_SelectionChangeFcn(hObject, eventdata, handles)

global EXISTE_TEMPERATURA
selection = get(handles.uipanel4,'SelectedObject');
switch get(selection,'Tag')
case 'radiobutton3'
% code piece when radiobutton3 is selected goes here
EXISTE_TEMPERATURA='s'
case 'radiobutton4'
% code piece when radiobutton4 is selected goes here
EXISTE_TEMPERATURA='n'
end

donde EXISTE_TEMPERATURA es una variable global que usaré en el workspace (donde tambien está definida como global)

En el button group hay una casilla marcada por defecto (radiobutton3)... pues bien al correr la GUI si no cambio esa seleccion por defecto no me pasa los valores al workspace... sin embargo si selecciono el radiobutton4 o bien selecciono el 4 y vuelvo a seleccionar a continuacion el 3 ... si que me pasa los valores al workspace...
es como si solo corriera la callback al producirse un cambio de seleccion de radiobutton.

He probado poniendo en la callback de cada radiobutton los valores que yo quiero pasar... pero tampoco funciona

Es decir... en la radiobutton3_callback poner EXISTE_TEMPERATURA='s'
y en la radiobutton4_callback poner EXISTE_TEMPERATURA='n'

A ver si alguien me puede ayudar , no se que se me escapa

Muchas gracias por tomaros la molestia.
Un saludo
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

RE:(GUI) Gestion button group

Publicado por Luismalega (23 intervenciones) el 29/09/2006 14:45:44
Efectivamente el callback sólo se activa cuando se cambia el botón. Y por tanto, si la opción que aparece por defecto en la GUI no se cambia la opción no se carga.

Sin saber muy bien como es tu programa tienes dos opciones:

1.- Si la selección del radiobutton tiene que modificar la ventana con la que estas trabajando, Elige el radio button que quieres que aparezca marcado por defecto al cargarse la ventana (asignando su propiedad "value" a 1). Una vez tienes el que quieras por defecto en el callback de inicialización de la ventana ajusta el valor de la variable global a su valor por defecto.

2.- Si la selección no repercute en esta ventana. Haz la lectura del radiobutton seleccionado en el callback del boton que cierre la ventana y te pase a otra. De esta manera haces el codigo más ligero porque no tienes que estar actualizando cada que el usuario cambie.

P. ej:

if get(handles.radiobutton3,'value');
%Si esta seleecionado el radiobuton3 la propiedad value vale 1 y el if será cierto
EXISTE_TEMPERATURA='s'
else
%Si no esta seleccionado es que lo está el otro
EXISTE_TEMPERATURA='n'
end

Espero que te sirva. Si es así comentamelo, please
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:(GUI) Gestion button group

Publicado por Rober (14 intervenciones) el 30/09/2006 18:33:54
Hola, muchas gracias por tu ayuda.
Lo cierto es que tengo unas 15 parejas de radiobuttons en mi aplicación y según lo que esté seleccionado en ellos daré un valor las variables globales que luego usaré en otro archivo.m, como deseo que muchos valores estén por defecto he optado por hacerlo del que creo es el segundo modo que me has propuesto:

- He creado un pushbutton ("comenzar") en cuya callback hago una lectura como la que proponias de cada pareja de radiobuttons

if get(handles.radiobutton3,'value');
%Si esta seleecionado el radiobuton3 la propiedad value vale 1 y el if será cierto
EXISTE_TEMPERATURA='s'
else
%Si no esta seleccionado es que lo está el otro
EXISTE_TEMPERATURA='n'
end

Parece que funciona bien pero seguire probandolo. Si hay mas problemas lo cuento

Muchas gracias!!!!!!!!!!!!!!
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