matlab gui

17
Matlab 7.0 Guide UFPa Grupo: GDIME Aluno: Jouberson Leônidas Prof: Abdon Tapía

Upload: miudofb

Post on 18-Jun-2015

7.139 views

Category:

Documents


3 download

DESCRIPTION

Interface grafica GUI

TRANSCRIPT

Page 1: Matlab GUI

Matlab 7.0

Guide

UFPaGrupo: GDIMEAluno: Jouberson LeônidasProf: Abdon Tapía

Page 2: Matlab GUI

Introdução

O Matlab possui uma ferramenta que permite construir interfaces gráficas de interação com o utilizador. O utilitário GUI são interfaces amigáveis para o utilizador e durante o projeto prático. Para construir uma interface gráfica convém ter uma idéia muito bem definida do que se pretende.

Eis alguns exemplos:

Page 3: Matlab GUI

Criando uma Gui

Neste primeiro momento, cabe apresentar o espaço do Matlab destinado à construção de uma interface gráfica, ou seja, uma Gui. É acessado do menu new gui.

Dê um clic em OK para abrir um utilizador em branco para a criação da gui, ou digite “guide” na janela de comando do matlab.

Com o utilizador você poderá fazer um desenho de seu programa utilizando as ferramentas a direita da janela do utilizador.

A barra para construção dá ao usuário o material necessário para construir a cara da interface gráfica.

Page 4: Matlab GUI

Ferramentas do programa

Logo abaixo estão algumas ferramentas que serão utilizadas nas interfaces gráficas ;

Edit text

O edit text é utilizado para a entrada de dados na gui, onde o mesmo pode ser armazenado em uma variável.

Pop-up-menu List box

O Pop-up-menu e a List box servem para listar dados amostrais, embora sejam diferentes as séries de comandos para utilizá-los é bem semelhante. Sendo a lista a coluna de uma matriz criada pelo usuário.

Push button

Page 5: Matlab GUI

O Push button é uma botão onde sua ação será determinada de acordo com a necessidade do usuário, onde ao clicá-lo produz a ação do programa.

Toggle button

O Toggle button é um botão que pode realizar duas funções, uma quando está ativado e outra quando está desativado. Ele possui o seu valor igual a 1 quando ligado e 0 quando desligado.

Ex: if x==1grid on

else x==0grid off

Radio buttons end

O radio button é utilizado como um marcador, onde seu valor também varia de zero a um. Quando selecionado seu valor é igual a 1, e quando não está selecionado seu valor é 0, funciona de maneira semelhante ao Toggle button.

Slider

O Slider funciona como um controlador, onde seus valores podem variar de acordo com a necessidade do programador. O programador pode escolher o intervalo que ele pode variar, veremos isso mais adiante em Property inspector, onde é ai que pode ser mudada todas as suas propriedades.

Text

Page 6: Matlab GUI

O Text serve para apresentar dados e textos produzidos pelo usuário, também é possível inserir em uma variável o que está escrito nele.

Propriedades(Property Inspector)

Todos os elementos Gui possuem tais propiedades como tamanho, cor, posição, Tag(nome), style(tipo de elemento), fonte, tamanho da fonte, string(nome de exibição), Callback(função do botão), entre outros. Os quais estes são os principais.

Callback O callback é o que chamamos de função de um botão, o qual executa uma ação ao ser selecionado. Podemos direcionar a ação de um botão alterando o seu callback de sua propriedade.

Enable É como um (liga/ desliga), para as ferramentas.Style É o estilo da ferramenta, fala se é um push button, edit text,

pop-up-menu, slider, etc....String É o texto apresentado na interface da ferramenta.Tag É exatamente o nome da ferramenta, e como iremos nos referir a

ela ao programá-la.Max O valor máximo que a ferramenta pode ter, muito útil para

programar slider.Min O valor mínimo que a ferramenta pode ter,também muito útil para

programar slider.

Page 7: Matlab GUI

Position É a posição onde a ferramenta está [Xmin, Ymin, Xmax,Ymax].

Construção de uma Gui

Após montar o programa utilizando os recursos computacionais citados acima, podemos ativar a interface, basta apertar Ctrl+T, ou aperte um botão verde em formato de play na parte superior da janela. Quando a janela de um interface gráfico é ativada, o Matlab cria automaticamente uma função (M-file) com o código necessário para gerar a Estrutura de dados de todos os componentes e respectivas propriedades que constituem a interface, através de uma sequência de instruções que aparecem no início da função e não devem ser alteradas.

Comando get e set O comando “get” serve para a entrada dedados, seja ele um número ou um nome.

O comando “set” tem a finalidade de apenas exibir dados obtidos ou gerados no programa em qualquer elemento gui programado.

Ex 1:Variável=get(handles.edit1, ‘string’);

set(handles.text1, ‘string’,Variavel)

Ex 2: Toda interface criada gera um M-file correspondente as

ferramentas utilizadas. Então fazendo o desenho do programa abaixo utilizando um text, um edit text e um push button, digite os comandos abaixo no M-file gerado pela interface na parte que corresponde a ação no botão (callback). Confira se no Tag correspondentes aos comandos é o mesmo da interface, pelo contrário ao rodar o programa dará erro.

Page 8: Matlab GUI

Alguns exemplos

Exemplo 1:

O comando str2num serve para converter o valor string em um valor numérico, e num2str o contrário.

Page 9: Matlab GUI

Lembrando: O Tag do M-file deve ser correspondente a ferramenta usada na interface. Os comandos devem ser digitados no M-file da interface abaixo da parte correspondente ao callback do botão.

Exemplo 2

Page 10: Matlab GUI

Repare que cara radio button tem seu callback, então a lógica é a seguinte: Quando o usuário seleciona um radio button o mesmo é marcado e automaticamente os dois restantes não são marcados.

Logo:

function radiobutton1_callback(hObject, eventdata, handles)set(handles.radionbutton1,’value’,1);set(handles.radionbutton2,’value’,0); set(handles.radionbutton3,’value’,0);

Obs: o valor do Radio button pode ser colocado em uma variável e utilizado como condição para ações futuras de determinado programa.

Exemplo 3:

Page 11: Matlab GUI

Este exemplo mostra a utilidade do Slider , onde o seu intervalo pode ser alterado de acordo com a necessidade do programador no Propert Inspector em max e min.

A lógica do programa é a seguinte: De acordo que o Slider corre o valor contido em seu intervalo aumenta, onde no fim do Slider é seu valor máximo. Logo o valor selecionado é colocado em uma variável e depois apresentada em um text.

O axes faz parte das ferramentas utilizadas para a construção de uma gui, o programador pode inserir vários gráficos ao mesmo tempo, mas para se referir a cada axes basta digitar handle(handles.axes(numero do axes)), no M-file gerado pela interface.

Como usar uma listbox

Page 12: Matlab GUI

Uma das dificuldades mais freqüentes dos iniciantes em interface gráfica é entender a lógica dos programas, na verdade quando o usuário aprende como o programa se comporta, se torna mais fácil reproduzi-lo.

O que se precisa saber para usar uma listbox é; 1 A listbox apresenta dados armazenado em matrizes, ou seja

apresentando uma coluna de matriz.2 Armazenar dados em uma matriz.3 Gerar um banco de dados.

Criando uma lista

1°passoInicialmente abra o matlab, abra a parte que corresponde a interface

gráfica. Faça o diagrama abaixo no utilizador. Apague as strings do edit e da listbox, faça isso indo em suas respectivas propriedades (property inspector).

2°passoAgora é necessário criar

um contador para que possamos listas os dados e armazena-los em uma matriz.Abra um novo arquivo-M

(M-file) e digite os seguintes comandos:

function iniciar()n=1;save banco_de dados

Após digitar o comando salve o M-file com o nome

que fica após o comando function.3° passoAbra um novo M-file e digite os seguintes comandos:

function gera_contagem()load banco_de_dadosn=n+1;x=findobj('tag','edit1');xa=get(x,'string');tabela(n,1)={n};tabela(n,2)={xa};lista=findobj('tag','listbox1');set(lista,'string',tabela(:,2));save banco_de_dados

Depois salve o arquivo com o nome que está após o comando function.

Page 13: Matlab GUI

4° PassoVá para o utilizador, abra a propriedade do botão como mostra a figura:

Na propriedade em callback digite o nome o M-file que se deseja executar ao selecionar o botão, no caso gera_contagem. E no Create Fcn você digita o nome do M-file que se deseja ser executado logo quando o programa abrir, no caso iniciar.

FIM

O comando findobj funciona como o input, mas com findobj o programador precisa direcionar para onde vai o comando.

Ex:x=findobj('tag','edit1');xa=get(x,'string');Neste caso o commando foi direcionado para seu o edit1, onde depois

foi armazenado em uma variável. A variável xa só fez armazenar em uma variável o que já estava em x no formato string.

Construindo painéis para interface

Page 14: Matlab GUI

Nas interfaces gráficas no matlab é possível gerar painéis que ficam na parte superior da janela do programa. O programador pode colocar nesses painéis botões como “Arquivo”, ”Editar”, ”Inserir”, ”Formatar”, “Ajuda”.

Na parte superior da janela do utilizador tem um botão chamado Menu Editor .

Ao entrar no Menu Editor o usuário poderá criar um painel para sua gui, é lógico que depois terá que programar suas funções, seus Callbacks são automaticamente direcionados para o M-file gerado pela interface, mas podem ser redirecionados pelo Menu Editor, onde mostra o Callback de cada item no painel.

Page 15: Matlab GUI

Abrir e salvar arquivos

O usuário pode abrir e gerar executáveis em sua interface, após usar os comandos abaixo, depois terá de programa-los.

Abrir

[filename,pathname] = uigetfile('*.m','UIGETFILE TITLE');

Salvar

Page 16: Matlab GUI

[filename,pathname] = uiputfile('Default.m','UIPUTFILE TITLE');

Ferramentas úteis

button = questdlg('Deseja fechar o programa?', ... 'Saida','Yes','No','No');switch button case 'Yes', close case 'No', returnend

msgbox('Erro da mensagem','Erro','help'); msgbox('Erro da mensagem','Erro','help');

msgbox('Erro da mensagem','Erro','warn'); answers = inputdlg({'1°pergunta',... '2°pergunta',... '3°pergunta',},... 'nome da janela');

Page 17: Matlab GUI

uisetfont(object_handles) uisetfcolor(object_handles)