• Nenhum resultado encontrado

Matlab GUI

N/A
N/A
Protected

Academic year: 2021

Share "Matlab GUI"

Copied!
17
0
0

Texto

(1)

Matlab 7.0

Matlab 7.0

Guide

Guide

UFPa

UFPa

Grupo: GDIME

Grupo: GDIME

Aluno: Jouberson Leônidas

Aluno: Jouberson Leônidas

Prof: Abdon Tapía

(2)

Introdução

Introdução

O Matlab possui uma ferramenta que permite construir

O Matlab possui uma ferramenta que permite construir interfacesinterfaces

gráficas de interação com o utilizador. O utilitário GUI são interfaces amigáveis 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

para o utilizador e durante o projeto prático. Para construir uma interface gráfica convém ter uma idéia muito bem definida

gráfica convém ter uma idéia muito bem definida do que se pretende.do que se pretende. Eis alguns exemplos:

(3)

Criando uma Gui

Criando uma Gui

Neste primeiro momento, cabe apresentar o espaço do

Neste primeiro momento, cabe apresentar o espaço do MatlabMatlabdestinadodestinado

à construção de uma interface gráfica, ou

à construção de uma interface gráfica, ou seja, uma Gui. É seja, uma Gui. É acessado do menuacessado do menu

new gui. new gui.

Dê um clic em OK para abrir um utilizador em branco para a criação da Dê um clic em OK para abrir um utilizador em branco para a criação da gui, ou digite “guide”

gui, ou digite “guide” na janela de comando do matlab.na janela de comando do matlab. Com o utilizador você poderá fazer um

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

utilizando as ferramentas a direita da janela do utilizador.

A barra para construção dá

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

(4)

Ferramentas do programa

Ferramentas do programa

Logo abaixo estão algumas ferramentas que serão utilizadas nas Logo abaixo estão algumas ferramentas que serão utilizadas nas in

inteterfrfacaces gres gráfáficicasas ;;

Edit text Edit text

O

Oedit text edit text é utilizado para a entrada de dadosé utilizado para a entrada de dados

na gui, onde o mesmo pode ser

na gui, onde o mesmo pode ser armazenado em umaarmazenado em uma variável.

variável.

Pop-up-menu

Pop-up-menu List List boxbox

O

OPop-up-menu Pop-up-menu e ae aList box List box servem para listar dados amostrais, emboraservem para listar dados amostrais, embora

sejam diferentes as séries de comandos para utilizá-los é

sejam diferentes as séries de comandos para utilizá-los é bem semelhante.bem semelhante. Sendo a lista a coluna

Sendo a lista a coluna de uma matriz criada pelo usuário.de uma matriz criada pelo usuário.

Push button Push button

(5)

O

OPush buttonPush button é uma botão onde sua ação seráé uma botão onde sua ação será

determinada de acordo com a necessidade do usuário, determinada de acordo com a necessidade do usuário, onde ao clicá-lo produz a

onde ao clicá-lo produz a ação do programa.ação do programa.

Toggle button Toggle button

O

O Toggle buttonToggle button é umé um

botão que pode realizar duas botão que pode realizar duas funções, uma quando está funções, uma quando está ativado e outra quando está ativado e outra quando está

desativado. Ele possui o seu valor  desativado. Ele possui o seu valor  igual a 1 quando ligado e 0

igual a 1 quando ligado e 0 quando desligado. quando desligado. Ex: Ex: if if x==1x==1 grid on grid on else x==0 else x==0 grid off  grid off  Radio buttons

Radio buttons endend

O

O radio buttonradio button é utilizado como umé utilizado como um

marcador, onde seu valor também varia de zero marcador, onde seu valor também varia de zero aa um. Quando selecionado seu valor é igual a 1, e um. Quando selecionado seu valor é igual a 1, e quando não está selecionado seu valor é

quando não está selecionado seu valor é 0,0, funciona de maneira semelhante ao

funciona de maneira semelhante ao Toggle button.Toggle button. Slider 

Slider 

O

OSlider Slider funciona como um controlador, onde seus valores podem variar funciona como um controlador, onde seus valores podem variar 

de acordo com a necessidade do programador. O programador pode escolher  de acordo com a necessidade do programador. O programador pode escolher  o intervalo que ele pode

o intervalo que ele pode variar, veremos isso mais adiante emvariar, veremos isso mais adiante emProperty Property  inspector,

inspector,onde é ai que onde é ai que pode ser mudada todas as suas propriedades.pode ser mudada todas as suas propriedades.

Text Text

(6)

O

OText Text serve para apresentar dados e textosserve para apresentar dados e textos

produzidos pelo usuário, também é possível inserir  produzidos pelo usuário, também é possível inserir  em uma variável o que está

em uma variável o que está escrito nele.escrito nele.

Propriedades(

Propriedades(

Property Inspector Property Inspector 

))

Todos os elementos Gui possuem tais propiedades como tamanho, cor, Todos os elementos Gui possuem tais propiedades como tamanho, cor, posição, Tag(nome), style(tipo de elemento), fonte, tamanho da fonte,

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.

string(nome de exibição), Callback(função do botão), entre outros. Os quaisOs quais estes são os principais.

estes são os principais.

Callback

Callback O callback é o que O callback é o que chamamos de função de um botão, ochamamos de função de um botão, o

qual executa uma ação ao ser selecionado. Podemos direcionar a ação de qual executa uma ação ao ser selecionado. Podemos direcionar a ação de umum botão alterando o seu callback de sua

botão alterando o seu callback de sua propriedade.propriedade.

Enable

Enable  É como um (liga/ desliga), para É como um (liga/ desliga), para as ferramentas.as ferramentas.

Style

Style É o estilo da ferramenta, fala se é umÉ o estilo da ferramenta, fala se é um push button, edit text, push button, edit text,  pop-up-menu, slider, etc...

 pop-up-menu, slider, etc... String

String  É o texto É o texto apresentado na interface da ferramenta.apresentado na interface da ferramenta.

Tag

Tag É exatamente o nome da ferramenta, e como iÉ exatamente o nome da ferramenta, e como iremos nos referir aremos nos referir a

ela ao programá-la. ela ao programá-la.

Max

Max  O valor máximo que a ferramenta pode ter, muito útil paraO valor máximo que a ferramenta pode ter, muito útil para

programar 

programar slider.slider. Min

Min  O valor mínimo que a O valor mínimo que a ferramenta pode ter,também muito útil paraferramenta pode ter,também muito útil para

programar 

(7)

Position

Position  É a posição onde a fÉ a posição onde a ferramenta está [Xmin, Ymin,erramenta está [Xmin, Ymin,

Xmax,Ymax]. Xmax,Ymax].

Construção de uma Gui

Construção de uma Gui

Após montar o programa utilizando os recursos computacionais citados Após montar o programa utilizando os recursos computacionais citados acima, podemos ativar a interface, basta apertar Ctrl+T, ou aperte um botão acima, podemos ativar a interface, basta apertar Ctrl+T, ou aperte um botão verde em formato de

verde em formato de play  play na parte superior da janela. Quando a janela de umna parte superior da janela. Quando a janela de um

interface gráfico é ativada, o

interface gráfico é ativada, o Matlab cria automaticamente uma função (Matlab cria automaticamente uma função (M-fileM-file))

com o código necessário para gerar a

com o código necessário para gerar a Estrutura de dados de todos osEstrutura de dados de todos os

componentes e respectivas propriedades que constituem a interface, através componentes e respectivas propriedades que constituem a interface, através de uma sequência de instruções que aparecem no início da

de uma sequência de instruções que aparecem no início da função e nãofunção e não devem ser alteradas.

devem ser alteradas.

Comando get e set

Comando get e set  O comando “get” serve para a entrada deO comando “get” serve para a entrada de

dados, seja ele um número ou um

dados, seja ele um número ou um nome.nome. O comando “set” tem a f

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

ou gerados no programa em qualquer elemento gui programado. Ex 1:

Ex 1:

Variável=get(handles.

Variável=get(handles.edit1edit1, ‘string’);, ‘string’);

set(handles.

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

Ex 2: Ex 2:

Toda interface criada gera um

Toda interface criada gera um M-fileM-filecorrespondente ascorrespondente as

ferramentas utilizadas. Então fazendo o desenho do programa abaixo utilizando ferramentas utilizadas. Então fazendo o desenho do programa abaixo utilizando um

umtext text , um, um edit text edit text e ume um push button push button, digite os , digite os comandos abaixo nocomandos abaixo noM-fileM-file

gerado pela interface na parte

gerado pela interface na parte que corresponde a ação no botão (callback).que corresponde a ação no botão (callback). Confira se no

Confira se no Tag Tag  correspondentes aos comandos é o mesmo da interface,correspondentes aos comandos é o mesmo da interface,

pelo contrário ao rodar o programa dará erro. pelo contrário ao rodar o programa dará erro.

(8)

Alguns exemplos

Alguns exemplos

Exemplo 1:

Exemplo 1:

O comando

O comando str2numstr2num serve para converter o valor serve para converter o valor string string em um valor em um valor 

numérico, e

(9)

Lembrando:

Lembrando:OO Tag Tag dodo M-fileM-file deve ser correspondente a ferramenta usada nadeve ser correspondente a ferramenta usada na

interface. Os comandos devem ser digitados no

interface. Os comandos devem ser digitados no M-fileM-file da interface abaixo da parteda interface abaixo da parte

correspondente ao

correspondente ao callback callback do botão.do botão.

Exemplo 2

Exemplo 2

(10)

Repare que cara

Repare que cara radio buttonradio button tem seutem seu callback callback , então a lógica é a, então a lógica é a

seguinte: Quando o usuário seleciona um

seguinte: Quando o usuário seleciona um radio buttonradio button o mesmo é marcado eo mesmo é marcado e

automaticamen

automaticamente os te os dois restantes não dois restantes não são marcados.são marcados. Logo:

Logo:

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

Obs: o valor doo valor doRadio buttonRadio button pode ser colocado em uma variável epode ser colocado em uma variável e

utilizado como condição para ações futuras de determinado programa. utilizado como condição para ações futuras de determinado programa.

Exemplo 3:

Exemplo 3:

(11)

Este exem

Este exemplo mosplo mostra tra a utilidade a utilidade dodo Slider Slider , onde o seu intervalo pode, onde o seu intervalo pode

ser alterado de acordo com a

ser alterado de acordo com a necessidade do programador nonecessidade do programador noPropert Propert  Inspector 

Inspector  emem max max ee minmin..

A lógica do programa é a seguinte: De acordo que o

A lógica do programa é a seguinte: De acordo que oSlider Slider corre o valor corre o valor 

contido em seu intervalo aumenta, onde no fim

contido em seu intervalo aumenta, onde no fim dodo Slider Slider é seu valor máximo.é seu valor máximo.

Logo o valor selecionado é colocado em uma variável e

Logo o valor selecionado é colocado em uma variável e depois apresentada emdepois apresentada em um

umtext.text.

O

Oaxesaxes faz parte das ferramentas utilizadas para a faz parte das ferramentas utilizadas para a construção de umaconstrução de uma

gui, o programador pode inserir vários

gui, o programador pode inserir vários gráficos ao mesmo tempo, mas para segráficos ao mesmo tempo, mas para se referir a cada

referir a cada axesaxes basta digitar basta digitar handle(handles.axes(numhandle(handles.axes(numero do ero do axes))axes)), no, no M-file

M-filegerado pela interface.gerado pela interface.

Como usar uma

(12)

Uma das dificuldades mais freqüentes dos iniciantes em interface gráfica Uma das dificuldades mais freqüentes dos iniciantes em interface gráfica é entender a lógica dos

é entender a lógica dos programas, na verdade quando o usuário aprendeprogramas, na verdade quando o usuário aprende como o programa se comporta, se torna mais fácil

como o programa se comporta, se torna mais fácil reproduzi-lo.reproduzi-lo. O que se precisa saber para usar uma listbox é; O que se precisa saber para usar uma listbox é;

11 A listbox apresenta dados armazenado em matrizes, ou sejaA listbox apresenta dados armazenado em matrizes, ou seja

apresentando uma coluna de matriz. apresentando uma coluna de matriz.

22  Armazenar dados em uma matriz.Armazenar dados em uma matriz.

33  Gerar um banco de dados.Gerar um banco de dados.

Criando uma lista

Criando uma lista

1°passo

1°passo

Inicialmente abra o matlab, abra a parte que corresponde a interface Inicialmente abra o matlab, abra a parte que corresponde a interface gráfica. Faça o

gráfica. Faça o diagrama abaixo diagrama abaixo no utilizador. no utilizador. Apague asApague asstringsstrings dodo edit edit e dae da listbox,

listbox, faça isso indo em suas respectivas propriedades (faça isso indo em suas respectivas propriedades ( property inspector) property inspector)..

2°passo

2°passo

Agora é necessário criar  Agora é necessário criar  um contador para que um contador para que possamos listas os dados possamos listas os dados e armazena-los em uma e armazena-los em uma matriz.

matriz.

Abra um novo arquivo-M Abra um novo arquivo-M ((M-fileM-file) e digite os) e digite os

seguintes comandos: seguintes comandos: function iniciar() function iniciar() n=1; n=1;

save banco_de dados save banco_de dados

Após digitar o comando Após digitar o comando salve o

salve o M-fileM-filecom o nomecom o nome

que fica após o comando

que fica após o comando function.function.

3° passo

3° passo

Abra um novo

Abra um novo M-fileM-file e digite os e digite os seguintes comandos:seguintes comandos: function gera_contagem() function gera_contagem() load banco_de_dados load banco_de_dados n=n+1; n=n+1; x=findobj('tag','edit1'); x=findobj('tag','edit1'); xa=get(x,'string'); xa=get(x,'string'); tabela(n,1)={n}; tabela(n,1)={n}; tabela(n,2)={xa}; tabela(n,2)={xa}; lista=findobj('tag','listbox1'); lista=findobj('tag','listbox1'); set(lista,'string',tabela(:,2)); set(lista,'string',tabela(:,2)); save banco_de_dados save banco_de_dados

Depois salve o arquivo com o nome que

(13)

4° Passo

4° Passo

Vá para o utilizador, abra a propriedade do botão como mostra a figura: Vá para o utilizador, abra a propriedade do botão como mostra a figura:

Na propriedade em

Na propriedade em callback callback digite o nome odigite o nome o M-fileM-file que se desejaque se deseja

executar ao selecionar o botão, no

executar ao selecionar o botão, no casocasogera_contagemgera_contagem. E no. E noCreateCreate Fcn

Fcn você digita o nome dovocê digita o nome do M-fileM-file que se deseja ser executado logoque se deseja ser executado logo

quando o programa abrir, no caso

quando o programa abrir, no caso iniciar iniciar ..

FIM FIM

O comando

O comando findobj findobj funciona como ofunciona como oinput input , mas com, mas comfindobj findobj oo

programador precisa direcionar para onde vai o comando. programador precisa direcionar para onde vai o comando.

Ex: Ex: x=findobj('tag','edit1'); x=findobj('tag','edit1'); xa=get(x,'string'); xa=get(x,'string');

Neste caso o commando foi direcionado para seu o

Neste caso o commando foi direcionado para seu o edit1,edit1, onde depoisonde depois

foi armazenado em uma variável. A variável

foi armazenado em uma variável. A variável xaxa só fez armazenar em umasó fez armazenar em uma

variável o que já estava em

variável o que já estava emxx no formatono formato string string ..

Construindo painéis para interface

Construindo painéis para interface

(14)

Nas interfaces gráficas no matlab é

Nas interfaces gráficas no matlab é possível gerar painéis que ficam napossível gerar painéis que ficam na parte superior da janela do

parte superior da janela do programa. O programador pode colocar nessesprograma. O programador pode colocar nesses painéis botões como “Arquivo”, ”Editar”, ”Inserir”, ”Formatar”, “Ajuda”.

painéis botões como “Arquivo”, ”Editar”, ”Inserir”, ”Formatar”, “Ajuda”. Na parte superior da j

Na parte superior da janela do utilizador tem um botão anela do utilizador tem um botão chamadochamadoMenu Menu  Editor 

Editor ..

Ao entrar no

Ao entrar no Menu Editor Menu Editor o usuário poderá criar um painel para sua gui,o usuário poderá criar um painel para sua gui,

é lógico que depois terá

é lógico que depois terá que programar suas funções, seusque programar suas funções, seus CallbacksCallbacks sãosão

automaticamen

automaticamente direcionados para te direcionados para oo M-fileM-filegerado pela interface, mas podemgerado pela interface, mas podem

ser redirecionados pelo

ser redirecionados pelo Menu Editor,Menu Editor, onde mostra oonde mostra o Callback Callback de cada item node cada item no

painel. painel.

(15)

Abrir e

Abrir e

salvar arquivos

salvar arquivos

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

Abrir 

Abrir 

[filename,pathna

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

Salvar 

Salvar 

(16)

[filename,pathna

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

Ferramenta

Ferramentas

s úteis

úteis

button = questdlg('Deseja fechar o

button = questdlg('Deseja fechar o programaprograma?', ...?', ... 'Saida','Yes','No','No'); 'Saida','Yes','No','No'); switch button switch button case 'Yes', case 'Yes', close close case 'No', case 'No', return return end end msgbox('Erro

msgbox('Erro da da mensagem','Errmensagem','Erro','help'o','help'); ); msgbox('Erro msgbox('Erro da da mensagem','Ermensagem','Erro','helpro','help');');

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

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

(17)

uisetfont(object_handles) uisetfcolor(object_handles) uisetfont(object_handles) uisetfcolor(object_handles)

Referências

Documentos relacionados

4.6- Correrão por conta da CONTRATADA todas as despesas de tributos, encargos trabalhistas e previdenciários, transporte, alimentação, hospedagem e qualquer outra

Promotores de Justiça, de 1ª entrância, que se achando vago o cargo de Promotor de Justiça de Parnamirim (Vara Única), fi ca aberta a concorrência pelo critério de Antiguidade,

O número de casos suspeitos de febre amarela indicados ontem em balanço da Secretaria de Estado de Saúde (152) superou em 14,2% o do boletim anterior, divulgados na sexta-feira

Se considerados também empregos e atividades cuja existência é viabilizada pelo transporte aéreo, ou o valor intrínseco da agilidade e conectividade da aviação, além dos efeitos

Resumo: Este trabalho foi desenvolvido para uma parte do centro histórico da cidade de Portalegre, sendo seu objetivos a classificação do estado de conservação

Uma revisão do conceito de Síndrome de Abstinência da Maconha feita por Smith em 2001, deixou clara a existência desta síndrome, porém ressaltou a importância do

A macaúba (Acrocomia aculeata) é uma palmeira encontrada em abundância no cerrado brasileiro. Contudo, um resíduo gerado no processamento de óleos de macaúba,

Considerando seu potente papel na regulação imunológica, foi sugerido que o INF-γ pode estar envolvido na remodelação periodontal durante a movimentação ortodôntica,