SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
t




    QtQuick


    Luís Gabriel Lima (lgnfl)
    Rafael Brandão (rbl)
Agenda
Agenda

• O que é Qt?

• Arquitetura do Qt

• O que é QtQuick?

• QML

• Considerações finais
O que é Qt?
O que é Qt?

• Qt é um framework C++
  •   desenvolvimento de aplicações   cross-plataform
  •   conjunto de APIs + GUI framework
  •   biblioteca de classes C++
  •   ferramentas de desenvolvimento (IDE, build system, etc)
• O Qt foi originalmente projetado para:
  •   criação eficiente de programas desktop
  •                           GUI
      sendo esses programas com
  •   e   independentes de platorma
• Trolltech (1991-2008), Nokia    (2008-2011), Open Governance
• Última versão: 4.7.4
Arquitetura do Qt
Arquitetura do Qt
Módulo QtGui

•   Widgets “tradicionais”
Graphics View Framework

• Superfície para acesso rápido de itens gráficos
  •   usa uma árvore BSP (Binary Space Partitioning)
  •   permite propagação de eventos entre itens
  •   visualização dos itens com suporte a zoom e rotações
  •   visualização em tempo real de cenas com milhares de itens


• Permite customização de itens, suportando:
  •   tratamento de eventos (cliques, teclas, etc.)
  •   agrupamento de itens (relação entre pai e filho, etc.)
  •   detecção de colisões
O que é QtQuick?
O que é QtQuick?


●   Qt User Interface Creation Kit
●   QML
●   Qt Declarative
●   Qt Creator Tools
●   Objetivos:
    ● Criar UIs como um designer
    ● Sem conhecimento de C++

    ● Poder de criação de interfaces flúidas
QML
QML (Qt Meta Language)
• Descreve uma interface gráfica:
 •   numa estrutura em árvore de bindings de propriedades
 •   propriedades são avaliadas dinamicamente
 •   comunicação é feita através do uso de sinais e slots
 •   binding para código c++ é possível
 •   animação de propriedades usando estados e transições
QML
• Linguagem declarativa baseada em javascript
 •   expressa com bindings entre propriedades
 •   estruturada em uma árvore de objetos
QML
• Contraste com uma linguagem imperativa
 • bindings de propriedades são expressões que são recalculadas
 sempre que o valor daquela propriedade muda
 • na imperativa, expressões são avaliadas uma única vez
QML
• Componentes
 •   um documento QML descreve a estrutura de um componente
 •   nome do componente é o nome do arquivo
QML
• Componentes
 •   uma instância de um componente é criada durante a execução
QML
• Componentes
 •   partes internas não são visíveis por padrão por outros
 •   API definida através de propriedades, funções e sinais


• Propriedades
 •   podem ser referenciadas pelo nome (iniciado em minuscula)
 • uma expressão de propriedade que referencia outra estabelece
 um binding (ligação)
 • sempre que uma propriedade muda, todos os valores ligados a
 ela serão alterados
QML
• Propriedades
 •   id são usadas para referenciar um objeto
 •   list são um conjunto de elementos
 •   default pode ser usada sem o nome (o atributo data a seguir)
QML
• Propriedades
 •   propriedades públicas são especificadas com 'property'
 •   tipos: int, bool, real, string, point, rect, size, time, etc.
QML
• Propriedades
 •   alias expõe uma propriedade interna para API pública
 •
QML
• Sinais
  • componentes podem emitir sinais que serão processados por
  signal handlers
  • signal handlers seguem a sintaxe onNomeDoSinal
QML
• Sinais
  •   mudanças de propriedades podem ser ligadas a sinais
  •   sintaxe: on<Propriedade>Changed
  •   repare na letra maiscula em propriedade
QML
• Sinais
  •   podem ser definidos sinais com a palavra 'signal'
QML
• Funções
 •componente pode exportar funções que podem ser chamadas
 por outros componentes
Considerações finais
Links Úteis


http://doc.qt.nokia.com/latest/qtquick.html
http://qt.nokia.com/learning/online/training/materials/qt-quick-for-designers/
http://doc.qt.nokia.com/latest/qdeclarativeelements.html
http://blog.qtlabs.org.br/
http://www.qt-project.org/
Vídeos

http://www.youtube.com/watch?v=rqt7vM_vP3o
http://www.youtube.com/watch?v=LTDJrMu24b8
http://circus.indt.org/
http://www.youtube.com/watch?v=k5gMAMSz77Q
http://www.youtube.com/watch?v=eyXuECm7OFQ
http://www.youtube.com/watch?v=UfLwZnTGcnA
http://www.youtube.com/watch?v=KLQD2jYS-XU
http://www.youtube.com/watch?v=b1eNx9Qmdcc
Referências

http://www.slideshare.net/tillinslidet/qtquick-day-1
http://www.slideshare.net/elenakotina/qt-quick-qml
http://blog.qt.nokia.com/2010/02/15/meet-qt-quick/
http://blog.qtlabs.org.br/2011/10/07/qml-restful-web-services/
That's all folks,
 thank you! :-)
t




    QtQuick


    Luís Gabriel Lima (lgnfl)
    Rafael Brandão (rbl)

Mais conteúdo relacionado

Destaque

Trabalhando com aplicações qt no net beans
Trabalhando com aplicações qt no net beansTrabalhando com aplicações qt no net beans
Trabalhando com aplicações qt no net beansValdomiro Morais
 
QTestLib: Criando unit tests inteligentes para projetos baseados em Qt
QTestLib: Criando unit tests inteligentes para projetos baseados em QtQTestLib: Criando unit tests inteligentes para projetos baseados em Qt
QTestLib: Criando unit tests inteligentes para projetos baseados em QtBruno Abinader
 
Instalações elétricas prática - SENAI
Instalações elétricas   prática - SENAIInstalações elétricas   prática - SENAI
Instalações elétricas prática - SENAILeonardo Chaves
 
Teclado curso completo - como tocar teclado - rafael harduim
Teclado   curso completo - como tocar teclado - rafael harduimTeclado   curso completo - como tocar teclado - rafael harduim
Teclado curso completo - como tocar teclado - rafael harduimjoelsonmoreira
 
TDC Goiânia, WP7 e Qt
TDC Goiânia, WP7 e QtTDC Goiânia, WP7 e Qt
TDC Goiânia, WP7 e QtHeitor Carlos
 
Aplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios CognitivosAplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios CognitivosRamon Mayor Martins
 
Busca tabu
Busca tabuBusca tabu
Busca tabuiaudesc
 
Aplicação Algorítimo Genético
Aplicação Algorítimo GenéticoAplicação Algorítimo Genético
Aplicação Algorítimo GenéticoRodrigo Romais
 
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFAS
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFASMETAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFAS
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFASJoao Gonçalves
 
Mágica com qt’s meta object system
Mágica com qt’s meta object systemMágica com qt’s meta object system
Mágica com qt’s meta object systemRodrigo Delduca
 

Destaque (20)

Rqt2
Rqt2Rqt2
Rqt2
 
Introdução ao Qt
Introdução ao QtIntrodução ao Qt
Introdução ao Qt
 
Tutorial api qt
Tutorial api qtTutorial api qt
Tutorial api qt
 
Revista qt 4
Revista qt 4Revista qt 4
Revista qt 4
 
Trabalhando com aplicações qt no net beans
Trabalhando com aplicações qt no net beansTrabalhando com aplicações qt no net beans
Trabalhando com aplicações qt no net beans
 
QtQuick - WSL II
QtQuick - WSL IIQtQuick - WSL II
QtQuick - WSL II
 
QTestLib: Criando unit tests inteligentes para projetos baseados em Qt
QTestLib: Criando unit tests inteligentes para projetos baseados em QtQTestLib: Criando unit tests inteligentes para projetos baseados em Qt
QTestLib: Criando unit tests inteligentes para projetos baseados em Qt
 
Jogos em Qt
Jogos em QtJogos em Qt
Jogos em Qt
 
Rqt1
Rqt1Rqt1
Rqt1
 
Instalações elétricas prática - SENAI
Instalações elétricas   prática - SENAIInstalações elétricas   prática - SENAI
Instalações elétricas prática - SENAI
 
Teclado curso completo - como tocar teclado - rafael harduim
Teclado   curso completo - como tocar teclado - rafael harduimTeclado   curso completo - como tocar teclado - rafael harduim
Teclado curso completo - como tocar teclado - rafael harduim
 
TDC Goiânia, WP7 e Qt
TDC Goiânia, WP7 e QtTDC Goiânia, WP7 e Qt
TDC Goiânia, WP7 e Qt
 
Opengl aula-01
Opengl aula-01Opengl aula-01
Opengl aula-01
 
Rqt3
Rqt3Rqt3
Rqt3
 
Aplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios CognitivosAplicações de Inteligência Artificial em Rádios Cognitivos
Aplicações de Inteligência Artificial em Rádios Cognitivos
 
Busca tabu
Busca tabuBusca tabu
Busca tabu
 
Aplicação Algorítimo Genético
Aplicação Algorítimo GenéticoAplicação Algorítimo Genético
Aplicação Algorítimo Genético
 
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFAS
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFASMETAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFAS
METAHEURÍSTICA GRASP APLICADA AO PROBLEMA DO SEQUENCIAMENTO DE TAREFAS
 
Mágica com qt’s meta object system
Mágica com qt’s meta object systemMágica com qt’s meta object system
Mágica com qt’s meta object system
 
Apostila ferramentas QT
Apostila ferramentas QTApostila ferramentas QT
Apostila ferramentas QT
 

Semelhante a QtQuick

Qt Techday - João Pessoa
Qt Techday - João PessoaQt Techday - João Pessoa
Qt Techday - João PessoaOpenBossa
 
c-gui-programming-with-qt-4-2ndedition -Cap1e2
c-gui-programming-with-qt-4-2ndedition -Cap1e2c-gui-programming-with-qt-4-2ndedition -Cap1e2
c-gui-programming-with-qt-4-2ndedition -Cap1e2Cedemir Pereira
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos Raquel Machado
 
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...Renato Groff
 
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IIMeetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IIMauricio Fernandes de Castro
 
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Renato Groff
 
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Renato Groff
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Renato Groff
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...Rogério Moraes de Carvalho
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeçaTrês anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeçaFelipe Hummel
 
Acelerando sua startup com kubernetes
Acelerando sua startup com kubernetesAcelerando sua startup com kubernetes
Acelerando sua startup com kubernetesValdomiro Bilharvas
 
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Amazon Web Services LATAM
 
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...Renato Groff
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google AndroidIury Teixeira
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Renato Groff
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4CDS
 

Semelhante a QtQuick (20)

Qt
QtQt
Qt
 
Qt Techday - João Pessoa
Qt Techday - João PessoaQt Techday - João Pessoa
Qt Techday - João Pessoa
 
c-gui-programming-with-qt-4-2ndedition -Cap1e2
c-gui-programming-with-qt-4-2ndedition -Cap1e2c-gui-programming-with-qt-4-2ndedition -Cap1e2
c-gui-programming-with-qt-4-2ndedition -Cap1e2
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Banco de dados orientados a objetos
Banco de dados orientados a objetos Banco de dados orientados a objetos
Banco de dados orientados a objetos
 
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
 
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IIMeetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
 
Webinar Novidades da Release R2017b
Webinar Novidades da Release R2017bWebinar Novidades da Release R2017b
Webinar Novidades da Release R2017b
 
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
 
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
 
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
A evolução e o futuro da linguagem C# (1.0, 2.0, 3.0, 4 e 5) - Virtual Develo...
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeçaTrês anos de Scala em Produção: desafios, aprendizados e dores de cabeça
Três anos de Scala em Produção: desafios, aprendizados e dores de cabeça
 
Acelerando sua startup com kubernetes
Acelerando sua startup com kubernetesAcelerando sua startup com kubernetes
Acelerando sua startup com kubernetes
 
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
Deep dive em aceleração de entrega de conteúdo, APIs e Aplicações utilizando ...
 
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
 
Aulas Google Android
Aulas Google AndroidAulas Google Android
Aulas Google Android
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
 
Entity Framework 4
Entity Framework 4Entity Framework 4
Entity Framework 4
 

QtQuick