Thiago Lacerda openbossa - INdT

Slides:



Advertisements
Apresentações semelhantes
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique
Advertisements

Paulo Marques Hernâni Pedroso
Windows Forms 2º Semestre 2010 > PUCPR > TPU Bruno C. de Paula.
Desenvolvimento de Sistemas Baseado na Transformação de Modelos
Prof. Thiago Pereira Rique
FACULDADE DOS GUARARAPES
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Máquina de Estados Uma máquina de estados finitos ou autômato finito é uma modelagem de um comportamento composto por estados, transições e ações Um estado.
Links Rollover image Tabelas
CRIAÇÃO Antes de criar sua página na pbwiki, é necessário que tenha uma conta de no gmail. Se não tiver, crie uma. Depois: -Acesse:
Ministrantes:Felipe Figueredo Rocha e Elton Gil Xavier
Outubro/2008 Engenharia do Computação Sistema de Gestão de Manutenção Desenvolvimento Equipe Antônio Deyvyson Diego Nascimento Paollo Maciel Marcelo Pereira.
Projeto Ginga Hiper - Aplicação / Componentes
Classes e objetos P. O. O. Prof. Grace.
Diagrama de Estados.
Configuração de manutenção
Curso de extensão em Desenvolvimento Web
Classes, Objetos e Encapsulamento
Rodrigo Cristiano Silva
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aula prática 6 Vetores e Matrizes
Conceitos básicos de orientação a objetos
Gerenciamento de Configuração
PROGRAMAÇÃO ESTRUTURADA II
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Rodrigo Cristiano Silva
Introdução ao Framework Django
Pequena revisão e alguns conselhos
Professor: Márcio Amador
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
UML Diagrama de classes.
Ruby (2/2) André Braga Patrícia Lustosa. Intro Peguem a aula de ontem em /~plvr para ter como referência para os exercícios de hoje.
Implementação MVC Pedro Antonino.
Unidade 6 – Formulários HTML Prof.: Henrique Santos
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Introdução a Banco de Dados Aula 04
Laboratório de Programação
Modelando Sistemas em UML
Fórmula Visual RM.
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Prof. Marcos LABORATÓRIO DE PRÁTICA DE PROGRAMAÇÃO 06.
MENU ARQUIVO Comando Imprimir Imprimi o documento atual # Impressora
ZK RIA com ZK Framework.
Orientação a Objetos Paradigma. Davi Pires Revisão Dúvidas da aula passada? –Características de Java –Compilador vs. Interpretador.
1 Padrões: Composite (p. 163) Objetivo: compor objetos em estruturas de árvores para representar relações de parte/todo. “Composite” permite tratar objetos.
Conceitos do Cliente Funcionamento Básico do Cliente Como Clientes acessam e usam Objetos Distribúidos.
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Apoio.
Shell Script Parte 2.
Módulo II Capítulo 1: Orientação a Objetos
COMPUTAÇÃO MÓVEL Prof.: Jean Carlo Mendes
Universidade Federal de Sergipe Departamento de Sistemas de Informação Bruno Cruz Jessica Rodrigo Aragão – ASP.NET MVC 3.
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Programação Orientada a Objetos Prof. Rafael Silva.
Array e ArrayList LPOO – 01/09/14.
Curso Básico de Android
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista POO para Redes de Computadores.
Linguagem de Programação
UCSal – Tecnologia em Análise e Desenvolvimento de Sistemas Programação para Aplicações WEB Profa. Semíramis Assis
Diagrama de Classes Herança Dependências.
Tudo sobre listas em Android
Tipo Abstrato de Dados (TAD) Estrutura de Dados Professor: Rodrigo Alves Sarmento Professor: André Cypriano.
WebDesign JavaScript e jQuery. HTML e W3C - O HTML segue padrão XML - linguagem somente de marcação - somente de visualização de conteúdo sem formatação.
Java Básico Lab Ruddá Beltrão | Cristian Costa.
Herança em Java Curso: Informática Disciplina: Programação Orientada a Objetos Prof. Abrahão Lopes
JFC e Swing Thiago Medeiros Barros 18/08/2011. JFC Java Foundation Classes é um conjunto de componentes e serviços que simplificam o desenvolvimento e.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Projeto Avançado de Software II 6 – Popular Movies APP Eduardo de Lucena Falcão.
Transcrição da apresentação:

Thiago Lacerda openbossa - INdT QML Thiago Lacerda openbossa - INdT

Por quê? Muito código necessário, quando se usa a antiga API de UI do Qt (GraphicsView) Diminuindo a velocidade para criar UIs Qualquer modificação == compilar código

O que é QML? Introduzido no Qt 4.7 Linguagem declarativa para criar UIs ricas Descreve a “cara” da UI, assim como seu comportamento UI é tratada como uma arvóre de objetos, com propriedades (colocar exemplo de properties)

Benefícios Facilidade para criar UIs ricas Menos código Totalmente integrada com o Qt Integrada com JavaScript Fácil para modularizar o código Estreita a relação entre os desenvolvedores e designers Plugins Sem compilação

Tipos básicos do QML bool int string real variant url color date

Tipos básicos do QML double list point rect time ...

Elementos básicos do QML Item Component QtObject

Elementos gráficos e textuais Image BorderImage

Mouse e interação MouseArea Flickable Keys

Posicionadores e repetidores Column Row Grid Repeater

Anchor Layout Define relações entre as âncoras dos itens Poder posicionar os itens usando o conceito de âncoras

Anchor Layout Exemplo

Propriedades Componentes QML tem propriedades que podem ser lidas e modificadas por outros objetos Propriedades podem ser criadas pelo desenvolvedor

Property Binding Faz um “bind” do valor de uma propriade, para ter sempre o valor de outra propriedade O valor da propriedade é automaticamente atualizado, caso o valor da outra seja mudado

Property Binding Qualquer expressão JavaScript também pode ser usado Acessar propriedades de objetos, chamar funções e usar objetos JavaScript (built-in)

Elements and Objects as Property Values O “binding” também pode ser feito com objetos Tenha cuidado quando referenciar o pai de um objeto que está sendo usado como “binding”

Property Aliases Não aloca espaço para essa propriedades to tipo “alias” Conecta a nova propriedade diretamente com outra (como um túnel) Tem o mesmo tipo da propriedade destino

Elemento Binding Usado para assegurar que a propriedade “target” sempre terá um determinado valor O “binding” nunca é perdido

Signals e Handlers Signals: Mesmo conceito do Qt Cada sinal tem o seu handler, sempre no formato: on<signalName>

Signals e Handlers Cada propriedade do QML tem seu signal Consequentemente, cada signal da propriedade, também terá seu handler Formato: on<propertyName>Changed

Eventos de Mouse Signals e handlers para interagir com eventos de mouse Elemento MouseArea Signals pressed clicked canceled doubleClicked released

Eventos de Mouse Exemplo

Eventos de Mouse Os handlers da MouseArea recebem um MouseEvent como parâmetro Com ele podemos Saber que botão do mouse foi apertado Posição do mouse Objeto “mouse”

Criando Componentes Componente é algum elemento QML que pode ser instanciado Geralmente definido em um arquivo .qml Reutilização de código

Criando Componentes Exemplo:

Criando Componentes Componentes criados no mesmo diretório são vistos sem problemas Quando utilizar dentro de outro arquivo, o nome deve ser igual ao usado para nomear o arquivo Component.onCompleted e Component.onDestruction Handlers usados para fazer alguma ação quando o componente acaba de ser carregado ou destruído

Criando Componentes Componentes também podem ser definidos dentro do próprio Item Criação feita com o método createObject

Estados Componentes podem ter vários estados Dependendo do estado, algumas ações podem ser tomadas, propriedades mudadas, etc. Exemplo: um sinal de trânsito Conjunto de propriedades definidas em um elemento State

Estados Elementos de um State PropertyChanges StateGroup StateChangeScript ParentChange AnchorsChanges Propriedade state é sempre presente em um Item Item sempre inicia no estado “default”

Criando Estados

Criando Estados Estados podem ser ativados de acordo com alguma condição, usando a propriedade “when”

Animações e Transições Durante mudança de estados, podemos querer mudanças animadas nas propriedades Para animar entre mudança de estados, usamos o elemento Transition Animações SequentialAnimation ParallelAnimation Behavior PropertyAction ScriptAction

Animações e Transições Animação de propriedades PropertyAnimation NumberAnimation ParentAnimation AnchorAnimation

Animações e Transições Exemplo

Animações e Transições Exemplo

Views e Models Views são coleções de itens Views do QML ListView GridView PathView WebView

View e Models Você diz como será cada item da sua view Delegate O model deve ser fornecido para lista preencher seu conteúdo Possibilidade de exportar seus models em C++ para o QML

Views e Models ListModel Hierarquia de elementos com “roles”

Views e Models XmlListModel Constrói um model através de um arquivo XML Roles são especificados pelo XmlRole

Views e Models Exemplo

Criando Tipos Tipos mais complexos podem ser criados no C++ e exportados pro QML Herdam de QObject Plugins são utilizados para isso

Criando Tipos Primeiro cria-se uma classe que herda de QDeclarativeExtensionPlugin Crie seu tipo, derivando de QObject e exporte as propriedade usando a macro Q_PROPERTY Registre seu tipo com o método registerTypes() Exporte seu plugin usando a macro Q_EXPORT_PLUGIN2 Crie um arquivo qmldir, para expor seu plugin e seus tipos QML

Criando Tipos Criando seu tipo

Criando Tipos Exemplo de Plugin

Criando Tipos Depois dos passos anteriores podemos no QML fazer

Criando Tipos Maneira mais fácil de criar um plugin Wizard do QtCreator Cria seu arquivo .pro Cria o esqueleto do seu plugin Cria o qmldir Cria seu tipo inicial