Matlab GUI

Matlab 7.

0 Guide

UFPa Grupo: GDIME Aluno: Jouberson Leônidas Prof: Abdon Tapía

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:

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.

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

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==1 grid on else x==0 grid off 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

Radio buttons

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

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.

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 de dados, 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.

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

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

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:

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

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°passo
Inicialmente 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°passo
Agora é 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° passo
Abra um novo M-file e digite os seguintes comandos: function gera_contagem() load banco_de_dados n=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.

4° Passo
Vá 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

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.

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

[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', return end

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');

uisetfont(object_handles)

uisetfcolor(object_handles)

Sign up to vote on this title
UsefulNot useful