COMPUTAÇÃO E PROGRAMAÇÃO



Documentos relacionados
Microsoft Windows. Aspectos gerais

Microsoft Windows: # 1

Manual de Administração Intranet BNI

O AMBIENTE DE TRABALHO DO WINDOWS

SIMULADO Windows 7 Parte V

COMPUTAÇÃO E PROGRAMAÇÃO

GUIA DE CRIAÇÃO DE APRESENTAÇÕES MICROSOFT POWER POINT

Microsoft Office FrontPage 2003

Pesquisa e organização de informação

7.3. WINDOWS MEDIA PLAYER 12

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

ZS Rest. Manual Avançado. Menus. v Certificado

Planificação Anual da disciplina de TIC 9ºANO

1.1. Clique no botão Iniciar, seleccione Todos os programas, Microsoft Office e no submenu aberto escolha o programa Microsoft FrontPage.

Conceitos importantes

Sistema Operativo em Ambiente Gráfico

PROGRAMAÇÃO Microsoft WINDOWS XP

ESTRATÉGIAS /ACTIVIDADES. Fazer uma abordagem teórica e simples

Aleph Manual de utilização do Módulo de Catalogação

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Tarefa 18: Criar Tabelas Dinâmicas a partir de Listas de Excel


Utilizar o Microsoft Offi ce OneNote 2003: Iniciação rápida

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

Sistema Operativo em Ambiente Gráfico

Centro de Competência Entre Mar e Serra. Guia

COMPUTAÇÃO e PROGRAMAÇÃO

Guia rápido do utilizador

Tecnologias da Informação e Comunicação: Sistema Operativo em Ambiente Gráfico

Aplicações de Escritório Electrónico

Manual do Utilizador para DS150E. Dangerfield June V3.0 Delphi PSS

MANUAL DE UTILIZAÇÃO. EcclesiaSoft v.01

MICROSOFT ACCESS MICROSOFT ACCESS. Professor Rafael Vieira Professor Rafael Vieira

Microsoft PowerPoint. Prof. Rafael Vieira

V 1.0 LINAEDUCA - GUIA DE USO

Tarefa Orientada 2 Criar uma base de dados

Instituto Politécnico de Tomar. Manual da Área de Secretariados

Gestor de Janelas Gnome

Squeak Componente Livro. Luís Valente, 2009

UNIDADE 2: Sistema Operativo em Ambiente Gráfico

Quick Installation Guide ST7501. Video Management Software

Windows Live Movie Maker

Folha de Cálculo (Excel)

Ferramentas Web, Web 2.0 e Software Livre em EVT

Tarefa Orientada 18 Tabelas dinâmicas

Introdução ao Microsoft Windows

Os elementos básicos do Word

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

Microsoft PowerPoint 2003

1. Introdução. 2. A área de trabalho

Quick Installation Guide. Central Management Software

WINDOWS. O Windows funciona como um Sistema Operativo, responsável pelo arranque do computador.

ÍNDICE. Acesso para agências...3. Organização por pastas...4. Download das facturas a partir do site...5. Pesquisa de facturas...8

Programação de Computadores I. Conhecendo a IDE Code::Blocks

Tutorial exe elearning XHTML editor (versão 1.0x)

Migrar para o Excel 2010

Informática Básica. Microsoft Word XP, 2003 e 2007

Aleph Manual de utilização do módulo de circulação e empréstimos

Sistema Operativo em Ambiente Gráfico

ZS Rest. Manual Avançado. Ementas : e SMS. v2011

Quadros Interactivos Multimédia e Formação Contínua de Docentes. InterwriteBoard Guia de Iniciação

7. Gestão de ficheiros em X Window O Konqueror

Sistema GPB Gestão de Pombais

PLANIFICAÇÃO ANUAL ANO LETIVO DE 2013/2014 Curso de Educação e Formação Tipo 3 Nível 2

Ministério Público. Guia de Consulta Rápida

Ambiente de trabalho. Configurações. Acessórios

UNIDADE 1 TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Manual de utilizador CRM

Migrar para o Access 2010

Guia de Acesso à Formação Online Formando 2011

MANUAL DE CONSULTA RÁPIDA DO MODEM OPTIONS FOR NOKIA Copyright 2002 Nokia. Todos os direitos reservados Issue 2

3.º e 4.º Anos de Escolaridade Competências Conteúdos Sugestões metodológicas Articulações

COMPETÊNCIAS BÁSICAS EM TIC NAS EB1

Tutorial: Do YouTube para o PowerPoint

1 Code::Blocks Criação de projetos

Google Sites. A g r u p a m e n t o C a m p o A b e r t o /

Guia de utilização. Gestão de Mensagens. Março 2009

Guia Rápido de Vodafone Conferencing

MANUAL INOVAR ALUNOS Área Docente

Como produzir e publicar uma apresentação online dinâmica (Prezi)

Manual do utilizador. Aplicação de agente

ued - unidade de ensino a distância instituto politécnico de leiria BlackBoard - Moodle Guia rápido

Fluxo de trabalho do Capture Pro Software: Indexação de OCR e separação de documentos de código de correção

Macro Key Manager Manual de Utilizador

Controle Parental. Introdução

App Inventor 2 - programação divertida para Android

Orientação a Objetos Programação em C++

Guia Rápido. Versão 9.0. Mover a perícia - não as pessoas

Introdução ao AutoCAD Capitulo III: Ecrã do AutoCAD e Operações de seleção. João Manuel R. S. Tavares Joaquim O. Fonseca

AULA 4 Sistemas Operacionais

2ºCiclo (5º e 6º Anos de escolaridade) 3ºCiclo (7º e 8º Anos de escolaridade)

DIFERENÇAS ENTRE FUNÇÃO E BLOCO FUNCIONAL; CRIAÇÃO DE FUNÇÃO / BLOCO FUNCIONAL; UTILIZAÇÃO NO LADDER; EXEMPLO DE BLOCO FUNCIONAL;

Administração da disciplina

Transcrição:

COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2010/2011 MEMec, LEAN Ficha da Aula Prática 10: Construção de GUIs Parte I Sumário das tarefas e objectivos da aula: 1. Identificar os vários componentes das GUIs 2. Entender o processo de desenvolvimento para GUI 3. Construir GUIs NOTAS: 1. Consultar os acetatos das ATs 17 e 18 2. Guarde todo o material que implementar nesta aula, por exemplo, enviando para o seu email José Borges, v1.1@2010 1

1. Guided User Interface (GUI) Elementos da GUI Uma GUI usa uma combinação de tecnologias e dispositivos para fornecer uma plataforma que permite ao utilizador interagir com um dado sistema (software e/ou hardware). As componentes no sistema WIMP (Windows, Icons, Menus and Pointing device) que constituem uma GUI tipo incluem: Sistema de janelas, Ícones e elementos gráficos, Menus/grupos de funções, Dispositivo de ponteiro, como por exemplo o rato. Programação event-driven O fluxo da execução do código nas GUIs é controlado por indicações externas, i.e. eventos, que são determinados pelo utilizador, e não pelo programa. Este modo de funcionamento resulta num tipo de programação denominado por programação orientada a eventos (event-driven programming) onde a evolução do programa é condicionada por eventos, como por exemplo o pressionar do botão do rato. A execução do programa desenvolve-se de modo assíncrono, sendo determinada por acções externas à GUI. Os eventos incluem acções do utilizador, acções devidas a outros elementos de código ou externas, i.e. geradas pelo SO, como por exemplo a criação de um ficheiro no sistema de ficheiros ou a ligação de hardware periférico. O controlo do programa não depende de um fluxo de execução programado no código mas sim da sequência de elementos de código (callbacks) disparada por reacção aos eventos. O controlo do fluxo da execução do programa constitui a principal diferença entre programação orientada a eventos e programação de execução sequencial. GUIs no MATLAB O funcionamento da generalidade das GUIs no MATLAB baseia-se na reacção a acções ou eventos, i.e. a GUI está normalmente num dado estado, que apenas é alterado quando o utilizador, ou outros elementos de código, desencadeiam uma determinada acção ou evento. A GUI e respectivos controlos têm associados elementos de código denominados por callbacks. A callback compreende o código que o MATLAB executa como reacção ao evento desencadeado fora da GUI. Os eventos do utilizador que desencadeiam callbacks no MATLAB incluem: carregar em botões da GUI carregar num botão do rato seleccionar um elemento do menu escrever uma cadeia de caracteres ou valor numérico passar com o rato em cima de uma componente José Borges, v1.1@2010 2

1.1 Editor de GUIs no MATLAB: guide 1.2 Exemplo de GUI no MATLAB José Borges, v1.1@2010 3

1.3 Estrutura da m-file de uma GUI 1.4 Template padrão de uma callback Onde: OBJECT HANDLE (hobject): estrutura com atributos e propriedades (os mesmos que são visualizáveis através do Property Inspector) da componente que disparou a callback. EVENT DATA (eventdata): estrutura com o histórico da sequência de evento até ao disparo da callback (não é utilizado por todas as componentes). HANDLES STRUCTURE (handles): apontador para uma estrutura com atributos e propriedades (os mesmos visualizáveis no Property Inspector) de todas as componentes existentes na GUI, bem como dados específicos da aplicação. José Borges, v1.1@2010 4

Processo de Desenvolvimento (PD) 1.5 Etapas do Processo de Desenvolvimento Fase I - Desenho da GUI: documentação dos requisitos e especificação funcional, nomeadamente definição das entradas e saídas, fluxos de dados, tipos de ecrãs e caracterizar os comportamentos da GUI e do programa que esta controla. Fase II - Programação da GUI: desenvolver o esboço, ou protótipo gráfico, da GUI e implementar os elementos de código para os controlos que asseguram o funcionamento correcto e consistente do programa. Fase III Testes Componentes da GUI 1.6 Componentes da GUI José Borges, v1.1@2010 5

2. A minha primeiragui 2.1 Criar uma nova GUI no MATLAB Escreva guide na prompt do MATLAB. 1 Seleccione o template Blank GUI (Default). 2 José Borges, v1.1@2010 6

Grave a GUI com o nome primeiragui. 3 Adicione na janela principal as componentes: Edit Text, Push Button, Static Text. 4 José Borges, v1.1@2010 7

Edite as propriedades de cada componente como se indica na tabela seguinte: 1 Fazer duplo clique em cima da componente (ou então clicar com o botão do lado direito e seleccionar Property Inspector ); 2 - Substituir o texto à frente da propriedade pretendida. Edit Text Push Button Static Text String Entrada de texto Carrega Aqui! Saída de texto Tag edtcaixaentrada pbcarregaaqui sttcaixasaida 5 Propriedades das componentes Edit Text e Static Text. 6 José Borges, v1.1@2010 8

Propriedades do controlo Push Button. 7 Clicar com o botão do lado direito em cima do controlo Push Button e seleccionar View Callbacks / Calbacks. 8 José Borges, v1.1@2010 9

Editar a callback do controlo Push Button com o código da caixa seguinte. Por exemplo, no caso do pbcarregaaqui colocar o código a seguir ao cabeçalho: % --- Executes on button press in pbesquerda. function pbcarregaaqui_callback(hobject, eventdata, handles) % hobject handle to pbesquerda (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) 9 % Atribui à variável entradatexto o conteúdo da propriedade % String da componente Edit Text com a Tag edtcaixaentrada entradatexto = get(handles.edtcaixaentrada,'string'); set(handles.sttcaixasaida, 'String', entradatexto) 11 Guardar a GUI no disco e executar (carregar na tecla F5). Escrever A minha primeira GUI! na caixa Edit Text e a seguir carregar no botão Push Button. José Borges, v1.1@2010 10

3. Desenvolvimento de uma aplicação para gestão de uma biblioteca Pretende-se criar uma aplicação gráfica para gerir os utilizadores de uma biblioteca. As componentes desta aplicação são: 1. GUI para gerir o funcionamento geral da aplicação. 2. GUI para listar os Sócios da biblioteca. 3. GUI para adicionar novos Sócios à base de dados da biblioteca. 4. GUI para retirar Sócios da base de dados da biblioteca. É dado o ficheiro de dados inicial: fichsocios.txt São dadas as funções de leitura de ficheiros: lerficheiro.m lerumsocio.m José Borges, v1.1@2010 11

GUI para gerir o funcionamento geral da aplicação 3.1 Implementação da GUI biblio_main Crie uma GUI com o nome biblio_main. 1 Clicar com o botão do lado direito sobre a GUI e escolher GUI Options. Desactivar a opção GUI allows only one instance to run. 2 José Borges, v1.1@2010 12

Componha as componentes da GUI como na figura e pela ordem da tabela seguinte. Edite as propriedades das componentes como apresentado na tabela. Tipo de Componente Propriedade String Tag FontSize Static Text Biblioteca 18 Push Button Listar pblistar 15 Push Button Adicionar pbadicionar 15 Push Button Remover pbremover 15 Push Button Sair pbsair 15 3 Tipo de Componente Propriedade Title Tag FontSize Panel Utilizadores 8 José Borges, v1.1@2010 13

Editar o código das callbacks para os seguintes controlos. 4 Controlo pblistar pbadicionar pbremover pbsair Código da callback GUI_Listar; GUI_Adicionar; GUI_Remover; close(handles.figure1) Guardar a GUI no disco e executar (carregar na tecla F5). ATENÇÃO: as GUIs para as opções Listar, Adicionar e Remover não estão implementadas, pelo que só a opção Sair irá funcionar. 5 José Borges, v1.1@2010 14

GUI para listar os Sócios da biblioteca 3.2 Implementação da GUI_Listar Crie uma GUI com o nome GUI_Listar. Clicar com o botão do lado direito sobre a GUI e escolher GUI Options. Desactivar a opção GUI allows only one instance to run. Componha as componentes da GUI como na figura e pela ordem da tabela seguinte. Edite as propriedades das componentes como apresentado na tabela. 1 Tipo de Componente Static Text Propriedade String Tag FontSize Biblioteca - Listar Sócios Static Text Número de Sócio 8 Edit Text edtnumero 15 Static Text Nº Documento Identificação Edit Text edtdocumentoid 15 Static Text Nome 8 Edit Text edtnome 15 Static Text Morada 8 Edit Text edtmorada 15 Static Text Código 8 Edit Text edtcodigo 15 Static Text Data do Aluguer 8 Edit Text edtdata 15 Push Button << pbesquerda 15 Push Button >> pbdireita 15 Push Button Actualizar pbactualizar 15 Push Button Terminar pbterminar 15 18 8 Tipo de Componente Propriedade Title Tag FontSize Panel Livro Requisitado 8 Panel Navegar nos registos 8 José Borges, v1.1@2010 15

Incluir o seguinte código na função de inicialização GUI_Listar_OpeningFcn, i.e., colocar o código a seguir ao cabeçalho da função de inicialização: % --- Executes just before GUI_Listar is made visible. function GUI_Listar_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hobject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to GUI_Listar (see VARARGIN) 2 % Choose default command line output for GUI_Listar handles.output = hobject; % Carrega dados a partir do ficheiro 'fichclientes.txt' clientes = lerficheiro ('fichsocios.txt'); % Insere a estrutura de dados Clientes na estrutura interna da GUI handles handles.clientes = clientes; % Insere a variável auxiliar Indice (que contém o índice do cliente actual a ser % exibido na GUI) na estrutura interna da GUI handles handles.index=1; % Actualiza na GUI_Listar as componentes tipo Edit Text % com o conteúdo da ficha do sócio número 1 set(handles.edtnumero,'string',clientes(1).numsocio) set(handles.edtdocumentoid,'string', clientes(1).numeroid) set(handles.edtnome,'string', clientes(1).nome) set(handles.edtmorada,'string', clientes(1).morada) set(handles.edtcodigo,'string',clientes(1).numlivro) set(handles.edtdata,'string',clientes(1).dataaluguer) % Update the index pointer to reflect the new index handles.index = 1; % Update handles structure guidata(hobject, handles); José Borges, v1.1@2010 16

Editar o código das callbacks. Por exemplo, no caso do pbesquerda colocar a seguir ao código: % --- Executes on button press in pbesquerda. function pbesquerda_callback(hobject, eventdata, handles) % hobject handle to pbesquerda (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) 3 Controlo pbesquerda pbdireita pbactualizar Código da callback clientes = handles.clientes; index = handles.index; % Navega para a esquerda no sistema de índices index = index - 1; if index > 0 set(handles.edtnumero,'string',clientes(index).numsocio) set(handles.edtdocumentoid,'string',clientes(index).numeroid) set(handles.edtnome,'string',clientes(index).nome) set(handles.edtmorada,'string',clientes(index).morada) set(handles.edtcodigo,'string',clientes(index).numlivro) set(handles.edtdata,'string',clientes(index).dataaluguer) % Update the index pointer to reflect the new index handles.index = index; end % Update handles structure guidata(hobject, handles); clientes = handles.clientes; index = handles.index; % Navega para a direita no sistema de índices index = index + 1; if ((length(clientes)-index) >= 0) set(handles.edtnumero,'string',clientes(index).numsocio) set(handles.edtdocumentoid,'string',clientes(index).numeroid) set(handles.edtnome,'string',clientes(index).nome) set(handles.edtmorada,'string',clientes(index).morada) set(handles.edtcodigo,'string',clientes(index).numlivro) set(handles.edtdata,'string',clientes(index).dataaluguer) % Update the index pointer to reflect the new index handles.index = index; end % Update handles structure guidata(hobject, handles); % Actualiza o conteúdo do array de estruturas Clientes % a partir do ficheiro de sócios clientes = lerficheiro('fichsocios.txt'); handles.clientes = clientes; handles.index=1; % Reactualiza as caixas Edit Text da GUI_Listar set(handles.edtnumero,'string',clientes(1).numsocio) set(handles.edtdocumentoid,'string',clientes(1).numeroid) set(handles.edtnome,'string',clientes(1).nome) set(handles.edtmorada,'string',clientes(1).morada) set(handles.edtcodigo,'string',clientes(1).numlivro) set(handles.edtdata,'string',clientes(1).dataaluguer) % Update the index pointer to reflect the new index handles.index = 1; % Update handles structure guidata(hobject, handles); José Borges, v1.1@2010 17

pbterminar % Encerra a figura da GUI close(handles.figure1) Guardar a GUI no disco e executar (carregar na tecla F5). Navegar nos registos da base de dados carregando nos botões tipo Push Button: para a esquerda << ou para a direita >>. O botão Actualizar serve para recarregar a informação da base de dados, que poderá ser modificada por uma das outras GUIs. 4 3.3 NOTAS A 2ª parte desta AP decorrerá durante a próxima semana. Guarde todos os ficheiros que implementou até à próxima AP José Borges, v1.1@2010 18