Documente Academic
Documente Profesional
Documente Cultură
La razón principal
por la que se utilizan las IGUs es porque hacen las cosas simples para los usuarios
finales del programa. Si no se usaran las IGUs, se tendría que trabajar desde la
interfaz de la línea de comandos del MATLAB, lo que puede ser extremadamente
difícil y frustrante. Imagínese si usted tuviera que ingresar órdenes de texto para
operar su navegador web (sí, el navegador web también es una interfaz gráfica de
usuario). No sería muy práctico ¿verdad? En este tutorial, vamos a crear una interfaz
gráfica de usuario simple que suma dos números, y que muestra la respuesta en un
campo de texto designado.
Este tutorial ha sido escrito para aquellos con poca o ninguna experiencia en la
creación de una interfaz gráfica de MATLAB (Interface Grafica del Usuario). No es
obligatorio tener conocimientos básicos de MATLAB, pero se recomienda. Para
escribir este tutorial se utilizó MATLAB versión 2007a. Pensamos que las versiones
anteriores y las nuevas versiones de MATLAB deberían también ser compatibles
(siempre que no sea demasiado obsoleta). Vamos a empezar!
contenido
• La inicialización del GUIDE (Creador de la IGU)
• Creación del aspecto visual de la interfaz gráfica de usuario: Parte 1
• Creación del aspecto visual de la interfaz gráfica de usuario: Parte 2
• Escribir el Código para las devoluciones de llamada de la interfaz gráfica de usuario
• Lanzamiento de la interfaz gráfica de usuario
• Resolución de problemas y problemas potenciales
• Foros relacionados y otros enlaces
3. Nos interesa cambiar el parámetro llamado String (cadena). Vamos edite este texto y
cámbielo a +.
7. Por lo tanto ahora, usted debe tener algo que se parece a la siguiente pantalla:
Creating the Visual Aspect of the GUI: Part 2
1. A continuación, vamos a modificar los componentes de texto editable. Haga doble clic
en el primer componente de Texto editable. Queremos establecer el parámetro String
en 0 y también queremos cambiar el parámetro Tag (etiqueta) para que ahora se llame
input1_editText, tal como se muestra a continuación. Este componente va a almacenar
el primero de los dos números que se van a sumar.
5. Ahora, guarde su IGU creada con cualquier nombre de archivo que quiera. Decidí
nombrarlo con el nombre de myAdder. Al guardar el archivo, MATLAB
automáticamente genera dos archivos: myAdder.fig y myAdder.m. El archivo .fig
contiene los gráficos de la interfaz. El archivo .m contiene todo el código de la interfaz
gráfica del usuario.
Escribiendo el Código para las devoluciones de llamada de la interfaz gráfica del
usuario.
MATLAB genera automáticamente un archivo .m acompañante cada vez que se crea
una figura. El archivo .m es donde colocamos el código correspondiente a la
devolución de llamada de cada componente. Para los efectos de este tutorial,
principalmente sólo nos ocuparemos de las funciones de devolución de llamada. Usted
no tiene que preocuparse acerca de cualquier otro tipo de función que encuentre en el
código del archivo .m.
1. Abra el archivo .m que se generó automáticamente cuando guardó su IGU. En el editor
de MATLAB, haga clic en el icono y al hacerlo aparecerá una lista de las funciones
que se encuentran dentro del archivo .m. Seleccione input1_editText_Callback.
Esta pieza de código simplemente se asegura de que la entrada este bien definida. No
queremos que el usuario ingrese entradas que no sean números! La última línea del
código le indica a la interfaz gráfica del usuario que después de que se ha completado
la devolución de llamada, debe de actualizar la estructura de los controladores o alias.
Los controladores o alias almacenan todos los datos pertinentes relacionados con la
interfaz gráfica del usuario. Este tema se tratará a profundidad en un tutorial diferente.
Por ahora, es una buena idea que usted lo acepte sin demostración y que finalice
todas las funciones de devolución de llamada con la instrucción guidata(hObject,
handles), de modo que los controladores o alias se estén siempre actualizando
después de cada devolución de llamada. Esto puede salvarlo de posibles dolores de
cabeza más adelante.
11. Agregue el mismo bloque de código anterior a input2_editText_Callback.
a = get(handles.input1_editText,'String');
b = get(handles.input2_editText,'String');
% a and b are variables of Strings type, and need to be converted
% to variables of Number type before they can be added together
19. a = get(handles.input1_editText,'String');
20. b = get(handles.input2_editText,'String');
Las dos líneas del código anterior leen las cadenas que están dentro de los
componentes de texto editable, y las almacenan en las variables a y b. Puesto
que son variables del tipo cadena o String, y no son variables del tipo numérico,
no podemos sumarlas. Por lo tanto, tenemos que convertir a y b al tipo
numérico para que el MATLAB pueda sumarlas.
.
21. Podemos convertir variables del tipo cadena (String) al tipo numérico usando el
comando de MATLAB str2num (argumento tipo cadena). Del mismo modo, podemos
hacer lo contrario con num2str (argumento del tipo Numérico). La siguiente línea de
código se utiliza para sumar las dos entradas.
La siguiente línea de código convierte la variable sum a una variable del tipo cadena y
la almacena en la variable c.
c = num2str(total);
24. set(handles.answer_staticText,'String',c);
La última línea de código actualiza las estructuras de los alias como se mencionó
anteriormente.
guidata(hObject, handles);
Si no puede averiguar dónde podría estar el error, sería una buena idea leer este
tutorial de nuevo.
1. La línea de comandos puede darle muchas pistas sobre dónde exactamente reside el
problema. Si por alguna razón su interfaz gráfica de usuario no funciona, el error se
muestra en el símbolo del sistema. El número de línea del código defectuoso y una
breve descripción del error son mostrados. Esto es siempre un buen lugar para
comenzar a investigar.
2. Asegúrese de que todos los nombres de las variables sean constantes en el código.
Además, asegúrese de que los tags de los componente (las etiquetas o nombres de
las variables) sean coherentes entre el archivo .fig. y el archivo .m. Por ejemplo, si
usted está tratando de extraer la cadena del componente de texto editable, asegúrese
de que sus instrucciones get (leer la variable o tag) utilicen la etiqueta correcta (tag)!
Más específicamente, si usted tiene la siguiente línea en el código, asegúrese de que
usted ha le ha puesto el nombre del componente de edición de texto según le
corresponda!
3. a = get(handles.input1_editText,'String');
4. El código fuente está disponible aquí, y podría ser útil para propósitos de depuración
5. Si todo lo anterior falla, deja un comentario aquí y vamos a hacer todo lo posible para
ayudarte.