想用matlab做界面吗?这是很好的质料。Manual de nterfaz grafica de usuario en matlab
Por: Diego Orlando Barragan Guerrero
GUIDE
INTERFAZ GRAFICA DE USUARIO EN MATLAB
INTRODUCCIO
N
GUidE es un entorno de programacion visual disponible en MATLAB para
rcalizar y cjccutar programas quc nccesitcn ingreso continuo dc datos. Ticnc las
caracteristicas basica de todos los programas visuales como Visual Basic o Visual
C++
INICIO
Para iniciar nuestro proyecto, lo podemos hacer de dos maneras
Ejecutando la siguiente instruccion en la ventana de comandos
> guide
Haciendo un click en el icono que muestra la figura
L MATLAE
iE Ecit Debug Desktop wing
?
ⅥAAT
Shortcuts 2 Whar's lew L How to-y GUIDE FLEAR E] CLOSE ALL S BOR
Currenl Dirurluiy-C-WHATLAB7Iwwurk p x Cultu wfildluw
[朝马
山Fit
F
当A|Dl
DCOLMUNCATIONS
IconO GUIDe
Se presenta el siguiente cuadro de dialogo
GUIDE Quick Start
JIDE templ
Lestion alo
BLAN
save nn startup a< C: MA. LAB701workMIG MATLABIsou'celuntitle d f g
Ventana de inicio de gul
WebsobremaTlab:www.matpic.com3
VideossobreMatlaben:www.youtubecom/diegokillemall
Manual de interfaz grafica de usuario en matlab
Por: Diego Orlando Barragan Guerrero
c presentan las siguientes opciones
a) blank gui default
La opcion de interfaz grafica de usuario en blanco(viene predeterminada), nos
presenta uin formulario nuevo, en el cual podemos disenar nuestro programa
b gui with Uicontrols
Esta opcion presenta un ejemplo en el cual se calcula la masa, dada la densidad y
el volumen, en alguno de los dos sistemas de unidades. Podemos ejecutar este
ejemplo y obtener resultados
c) GUI with Axes and menu
Esta opcion es otro ejemplo el cual contiene el menu File con las opciones Open,
Print y Close En el formulario tiene un Popup menu, un push button y un objeto
Axes, podemos ejecutar el programa eligiendo alguna de las seis opciones que se
cncucntran cn cl mcnu despcgablc y haciendo click cn cl boton dc comando
d )Modal Question Dialog
Con esta opcion se muestra en la pantalla un cuadro de dialogo comun, el cual
consta de una pequena imagen, una etiqueta y dos botones Yes y No
dependiendo del boton que se presione, el gui retorna el texto seleccionado (la
cadena de caracteres Yes'0 No')
Elegimos la primera opcion, Blank GUl, y tenemos
回区
b臼圖磨“c串郾回爵哈|卜
componentes
Ar
ea de
diseno
Entorno de diseno de gul
La interfaz grafica cuenta con las siguientes herramientas
串| Alinear objetos
Editor de menu
B Editor de orden de etiqueta
包 ditor del m-file
p
dades de objeto
s Navegador de objetos
Grabar y ejecutar(ctrl. T
WebsobreMatlab:www.matpic.com4
VideossobreMatlaben:www.youtubecom/diegokillemall
Manual de nterfaz grafica de usuario en matlab
Por: Diego Orlando Barragan Guerrero
Para obtcncr la ctiqucta dc cada clemento dc la palcta de components
ejecutamos: File>> Preferences y seleccionamos Show names in component palette
Tenemos la siguiente presentation
untitle d1. fig
匚回
电的当B歇国的哈
西PuEh
Bulto
C Radio button
Entorno de diseno: componentes etiquetados
La siguiente tabla muestra una descripcion de los componentes
I Control valor de estilo
Descripcion
Check box
checkbox
Indica el estado de una opcion o atributo
Editable text
Caja para editar texto
Pop-up menu ' popupmenu Provee una lista de opciones
List box
"listbox?
Muestra una lista deslizable
Push button
pushbutton' Invoca un evento inmediatamente
Radio Button radio
Indica una opcion que puede ser seleccionada
Toggle Button.togglcbutton, Solo dos estados,“on”o¨of
lder
Slider
Sado para representar un rango de valores
Static Text
text
Muestra un string de texto en una caja
Panel button
Agrupa botones como un grupo
Button Group
Permite exclusividad de seleccion con los radio button
PROPIEDADES DE LOS COMPONENTES
Cada uno de los elementos de gul, tiene un conjunto de opciones que podemos
acccder con click dcrccho
M-「!Eui|ur
view Cal la3=ks
rockery Edit
Opciones del componente
WebsobreMatlab:www.matpic.com5
VideossobreMatlaben:www.youtubecom/diegokillemall
Manual de nterfaz grafica de usuario en matlab
Por: Diego Orlando Barragan Guerrero
La opcion Property Inspector nos permite pcrsonalizar cada clcmcnto
Pr
回区
BeinyD
BUSwActiol
Butten Down
画
tvelght
HuricUllLaIAliyr irrierIl
v center
ntarriintihl
Entorno Property inspector
Permile ver y editar las propiedades de un objeto
Al hacer click dcrccho cn cl clcmento ubicado cn cl arca de disco. una de las
opciones mas importantes es View Callbacks, la cual, al ejecutarla, abre el archivo. m
asociado a nuestro diseno y nos posiciona en la parte del programa que corresponde a la
subrutina que se ejecutara cuando se realice una determinada accion sobre el elemento
que estamos editando
Por ejemplo, al ejecutar View Callbacks>> Callbacks en el Push Button, nos
ubicaremos en la parte del programa
function pushbutton Callback(hobjectr eventdata, handles)
9h0oiect
handle to pushbutton (see GC30)
eventdata reserved-to be defined in a future version of matlaB
candles
structure with handles and user data(see gUIdata)
FUNCIONAMIENTO DE UNA APLICACION GUI
Una aplicacion GUIDE consta de dos archivos: m y fig. El archivo. m es el que
contiene el codigo con las correspondencias de los botones de control de la interfaz y el
archivo, fig contiene los elementos graficos
Cada vez que se adicione un nuevo elemento en la interfaz grafica, se genera
automaticamente codigo en el archIvo. m
Para ejecutar una Interfaz Grafica, si la hemos etiquetado con el nombre
curso. fig, simplcmentc cjccutamos cn la ventana dc comandos > curso O hacicndo
click derecho en el m-file y seleccionando la opcion RUN
WebsobreMatlab:www.matpic.com6
VideossobreMatlaben:www.youtubecom/diegokillemall
Manual de interfaz grafica de usuario en matlab
Por: Diego Orlando Barragan Guerrero
MANEJO DE DATOS ENTRE LOS ELEMENTOS DE LA APLICACION Y EL
ARCHIVO.M
Todos los valores de las propiedades de los elementos(color, valor, posicion
string .) y los valores dc las variables transitorias del programa sc almaccnan cn una
estructura, los cuales son accedidos mediante un unico y mismo identificador para todos
estos. Tomando el programa listado anteriormente, el identificador se asigna en
t= ho
handles, es nuestro identificador a los datos de la aplicacion. esta definicion de
identificador es salvada con la siguiente instruccion
guidaca(hobjectr handles)i
guidata, es la sentencia para salvar los datos de la aplicacion
Aviso: guidata es la funcion que guarda las variables y propiedades de los elementos en
la estructura de datos de la aplicacion, por lo tanto, como regla general, en cada
subrutina se debe escribir en la ultima linea lo siguiente
guidata(hobject handles)
Esta sentencia nos garantiza que cualquier cambio o asignacion de propiedades o
variables quede almacenado
Por cjcmplo, si dentro dc una subrutina una operacion dio como resultado una
variable diego para poder utilizarla desde el programa u otra subrutina debemos salvarla
de la siguiente manera
handles. diego=diego
quidata(hobject, handles
La primera linea crea la variable diego a la estructura de datos de la aplicacion
apuntada por handles y la segunda graba el valor
SENTENCIAS GET Y SET
La asignacion u obtencion de valores de los componentes se realiza mediante las
sentencias get y set. Por ejemplo si queremos que la variable utpl tenga el valor del
Slider escribimos
utpl= get(handles slider,'value)i
Notar quc siempre se obticnen los datos a traves de los identificadores handles
Para asignar el valor a la variable utpl al statictext etiquetada como text/
escribimos
set(handles. etl, String, utp)eScribe el valor del slider
sen static-text
WebsobreMatlab:www.matpic.com7
VideossobreMatlaben:www.youtubecom/diegokillemall
Manual de interfaz grafica de usuario en matlab
Por: Diego Orlando Barragan Guerrero
eJeMPLOS
PRESENTACION DE NUESTRO PROGRAMA
-A procesamiento Digital de Senales
巴回囟
Presentacion del Programa
Par: Diego Barrayan Guerrero
□T|LAR
ANCEL OF P们 RIBUTION
Presentation del programa
Para la prescntacion dc nucstro programa, vamos a programar una pantalla
donde podemos colocar el tema de nuestro diseno, nombre del programador, imagen de
fondo
Para esto, tenemos el siguiente codigo(copiar y pegar en un m-file)
function presentation
cAutor: Diego barragan Guerrero
CEstudiante de Electronica y Telecomunicaciones
大大大大★大大x大大大大大大大大大大大Xx大大大大大火大大大大大x大大大大大大水大大大大x大大大大大大大大大大大大大x大大
presentacion: funcion que presenta la pantalla de presentacion
大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大大
clear, clc cla, close all
Creamos figura
figdiag=fiqure(' Units,' Pixels'r
Para nuestro curso, creamos en C: \MATLAB71\work la carpet MIS MATLAB, donde
almacenaremos todos nuestros programas
WebsobreMatlab:www.matpic.com8
VideossobreMatlaben:www.youtubecom/diegokillemall
Manual de interfaz grafica de usuario en matlab
Por: Diego Orlando Barragan Guerrero
Position'′,[0.07250.07250.570.57],...8 Tamano de1
presentation
' Number''cff
I Name,Electronica y Telecomunicacicnes,
MEnubar,none
o1or,[003]);
Ubicamos ejes en figura
axes('Units, Normalized
Position"’,[0011]);
C-----Centramos la figura
scrs - get(O,Screensize')i
pos act-get(gcf,'Position)i
xr=scrs (3)
pos act(3)
xp=round(xr/2)
yr=scrs(4)-pos act (4)i
yp=round(vr/2)i
set(gcf,' Position,[xp yp pos act(3) pos act(4)])i
PIncluir imagen
Tmportamos imagen *. jpg, junto con su mapa de colores
[x, map]=imread( 'circuit. jpg,pg)
tRepresentamcs imagen en figura, con su mapa de colcres
image(x),colormap(map), axis off, hold on
Titulos sobre imagen
text(50,50,'Presentacion del
Programa,' Fontname,'Arial',' Fontsize,25,Fontangle',Italic
Fontweight,Bold,'color,[11 0])i
Nombre del programador
text(50,-30,por: Diego Barragan Guerrero,'Fontname'
Comic Sans Ms Fontangle''itali
Fontweight ''Bcld
Fontsize'14,color[11 11)i
2 Boton continuar
book=uncontrol( style, pushbutton,
Units
normalized
Position',[.84.03.12.35
String, CONTINUar'
i Callback'r' clear alli close alli clc, GUI)i Gui es el nombre
del siguiente programa
Las sentencias luego del comentario Boton Continuar, en la linea
'Callback,'clear all: close all;cIc; GUT;') se reemplaza GuI por el
nombre de nuestro programa disenado con interfaz de usuario
Para ejecutarlo, presionamos la tecla F5
Otra manera de presentar nuestro programa es con la siguiente funcion
function presen(filename, varargin)
presen(filename, varargin
filename es el nombre de una imagen y su extension
varargin es el tiempo en milisequndos
老ep1o:
WebsobreMatlab:www.matpic.com9
VideossobreMatlaben:www.youtubecom/diegokillemall
Manual de interfaz grafica de usuario en matlab
Por: Diego Orlando Barragan Guerrero
presen(' portada ipg, 2000)
if nargin ==1
imread (filename)i
t
4000
elseif (nargin ==2)&(ischar(varargin(1)
fmt vararginil y
I imread(filename, frt)i
time=4003;
Seif (nargin --2)&(isnumeric(vararginf1)
I imread(filename
time varargin(l:
elseif nargin ==3
fmt
rangin[1)
I imread(filename, frt)
time vararginf2:
if (visnumeric(tine))I (length(time)w=1)
error( erROR: TTME debe ser un valor numeric en seg.)
end
e⊥se
error( error: demasiados datos entrada! )i
end
judas Image- im2iava(-)i
win =javax. swing. JWindow
icon = javax. swing. ImageIcon (judas Image)i
label javax swing. JLabel(icon)i
win. getContentPane add(label)i
screensize win. getToolkit. getscreensizei
screenHeight screenSize height
screenwidth screensize width
imgHeight icon. getIconHeigat
imgNidth icon. getIconWidthi
win. setLocation((screenWidth-imgWidth)/2,(screenHeight-imgHeight)/2)i
win, pack
win. show
tici
while toc -ime/1000
end
win. dispose()
No olvidar que las funciones se guardan con el mismo nombre
WebsobreMatlab:www.matpic.com10
VideossobreMatlaben:www.youtubecom/diegokillemall