SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
Introdução ao Qt


1
OBJETIVOS
    ●
        O Framework Qt
        ●
            O que é o Qt?
        ●
            Por que usar o Qt?
        ●
            Quem usa Qt?
    ●
        Interface com QtQuick
        ●
            QML
        ●
            Qt Creator IDE
        ●
            C++ API
    ●
        Multiplataforma
        ●
            QtMobility
2
O Framework Qt




3
O que é o Qt?


    • É um framework para aplicações multi-plataforma em
      C+++.
    • Suporta aplicações com e sem interface gráfica.
    • Desenvolvido inicialmente pela TrollTech e atualmente
      mantido como projeto OpenSource pela Nokia.


4
Por que usar o Qt?
    • É baseado no C++ padrão mas pode ser utilizado com
      diversas outras linguagens.
    • Possui suporte a internacionalização de Aplicações.
    • Roda nas principais plataformas móveis e de desktop.
    • É distribuido nas licenças LGPL v2.1, GPL e Comercial
      (Qt Comercial).
    • Suporta recursos gráficos avançados.
    • Permite a mistura de código nativo com código web.




5
Por que usar o Qt?



     ●
         Qt é o framework utilizado para desenvolvimento de
         aplicações nas plataformas Symbian, Maemo e MeeGo.




            Nokia             Nokia            Nokia N9
            X7-00             N900

 6
Por que usar o Qt?




• Permite escrever um único
  código    para    múltiplas
  plataformas.
• Possui uma IDE com
  suporte a drag-n-drop.




  7
Por que usar o Qt?


     • Utiliza o conceito de sinal-slot, modelo MVC, graphics
       view/scene/item.
     • Possui ampla documentação.
     •   Uma comunidade ativa e participativa.




 8
Quem usa Qt?




  Adobe Photoshop Elements
            Autodesk Maya
                   Skype
Quem usa Qt?




           Google Earth
          Wolfram Mathematica
Interface com QtQuick




11
• QtQuick (Qt User Interface Creation Kit) é uma
   interface de alto nível para criação simplificada de
   interfaces.
 • É composto por:
 •   QML: Uma linguagem declarativa
 •   Qt Creator
 •   API em C++ para integração com o Qt




12
QML
 • QML é uma linguagem declarativa para elementos de
   interface gráfica.
 • Descreve a interface gráfica
     ●
        Como os elementos são
     ●
         Como eles se comportam
 • A interface final é uma árvore de elementos com
   propriedades (semelhante ao HTML)




13
QML
QML

 import QtQuick 1.1
 // Define um quadrado azul claro
 Rectangle {
 width: 400; height: 400
 color: "lightblue"
 }



 • Para usar um módulo, primeiro precisamos importá-lo.
 • Especifique o nome do módulo e a versão desejada

15
QML

 Import QtQuick 1.1
 // Define um quadrado azul claro
 Rectangle {
 width: 400; height: 400
 color: "lightblue"
 }



 •    Comentários podem ser definidos com:
       ●
         // para comentários de uma linha
      ●
          /* ... */ para comentários em bloco
QML

Import QtQuick 1.1
// Define um quadrado azul claro
Rectangle {
width: 400; height: 400
color: "lightblue"
}


 •   Declare os elementos que queria usar
 •   O corpo do elemento é o que fica entre chaves.
 •   Vários elementos padrão são incluídos.
 •   Novos elementos podem ser especificados
17
QML

 Import QtQuick 1.1
 // Define um quadrado azul claro
 Rectangle {
 width: 400; height: 400
 color: "lightblue"
 }


 • Elementos contém propriedades
 • Cada propriedade é definida usando um nome e um
   valor
    ●
       nome: valor
18
QML

 Import QtQuick 1.1
 // Define um quadrado azul claro
 Rectangle {
 width: 400; height: 400
 color: "lightblue"
 }


 • Um elemento Rectangle
    ●
      Definido entre chaves
      ●
          Contendo as propriedades width, height e color

19
QML


 • Vários elementos estão disponível para uso.
    ●
       São estruturas na linguagem
      ●
          Representam partes visíveis e não visíveis.
 •    Item é o elemento mais básico
       ●
          Não é visível por si só
      ●
          Tem uma posição e dimensões
      ●
          É usado para agrupar elementos visuais
      ●
          Geralmente é o elemento de maior nível
 •    Outros elementos:
       ●
         Text, TextInput, Page, Circle, Row, Column...
20
QML


 • QML também define elementos sem representação
   visual
     ●
       Estados, transições.
      ●
          Gradientes, timers.
 • Cada elemento possui propriedades
    ●
      Propriedades customizadas podem podem ser
      criadas
 • Consultar documentação sobre as propriedades de
   cada tipo de elemento.



21
Qt Creator IDE
 • O Qt Creator IDE possui:
    ●
      Editor visual para criar e editar componentes QML
     ●
         Ferramentas de projeto e build de aplicações
     ●
         Sistema de ajuda integrado e sensível ao contexto
     ●
         Debuger visual
     ●
         Ferramentas para navegação rápida no código
     ●
         Highlight de sintaxe e code completion




22
Qt Creator IDE
                 Modo de
                 Design

      Barra de
                           Símbolos
      Projetos



Seletor de
Modo




      Run

     Build                      Painéis de
       Pesquisa                 informação
Qt Creator IDE


                          Variáveis

              Debuger




           Controles de
              Fluxo
Qt Creator IDE




Tipo de
Build
Qt Creator IDE
Qt Creator IDE


  • É instalado automaticamente com o QtSDK
     ●
        qt.nokia.com/downloads/
      ●
          Versões para Windows, Linux e MacOS
      ●
          Pacotes de instalação On-Line e Off-Line
  • Pode ser instalado como standalone




 27
C++ API
 • O Qt Quick suporta interação com C++
    ●
       QtDeclarative é a API que permite interagir e gerenciar
      componentes
     ●
         A interação ocorre através de objetos expostos ao ambiente
         QML como novos tipos
 • Elementos não visuais são subclasses do tipo QObject.
 •   Tipos visuais (items) são subclasses do tipo QDeclarativeItem
     ●
         QdeclarativeItem é o equivalente ao Item do QML
 •   A interação entre QML e C++ ocorre através de:
     ●
         Propriedades
     ●
         Sinais e Slots (métodos que não retornam valores)
     ●
         Métodos (definidos com a macro Q_INVOKABLE)
28
C++ API




          EXEMPLO




 29
Multiplataforma




30
QtMobility
 • O Projeto QtMobility cobre uma vasta gama de
   tecnologias e funcionalidades.
     ●
       É um conjunto de APIs e Frameworks que proveem
       uma interface única de acesso a recursos,
       independente de plataforma.
 • É suportado por Linux, Windows, Mac OS, Symbiam,
   Meego e Maemo 5.




31
QtMobility


  • QtMobility APIs
     ●
       Messaging: Uma interface comum para SMS, MMS e
       E-Mail
      ●
          Contatos
      ●
          Localização: posicionamento, postos de referência,
          mapas
      ●
          Multimídia
      ●
          Informações de Sistema
      ●
          Sensores
          ...
 32
QtMobility


  • Algumas APIs possuem plugins QML
     ●
        Com isso é possível desenvolver aplicações
        poderosas e multiplataforma apenas com QML




 33
QtMobility




 34
Mais Informações
• @nokiadev_brasil
• http://blog.qtlabs.org.br/
• http://bit.ly/NokiaDev_Qt_Brasil
• E-mail: daniel.bittencourt@openbossa.org




 35

Mais conteúdo relacionado

Mais procurados

Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique MarksDesenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Tchelinux
 

Mais procurados (18)

Desenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE PlasmaDesenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE Plasma
 
Kde para iniciantes - Camila Ayres
Kde para iniciantes - Camila AyresKde para iniciantes - Camila Ayres
Kde para iniciantes - Camila Ayres
 
O KDE no mundo
O KDE no mundoO KDE no mundo
O KDE no mundo
 
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDEPráticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDE
 
Webinar: Qt: um toolkit, um código-fonte, múltiplas plataformas
Webinar: Qt: um toolkit, um código-fonte, múltiplas plataformasWebinar: Qt: um toolkit, um código-fonte, múltiplas plataformas
Webinar: Qt: um toolkit, um código-fonte, múltiplas plataformas
 
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique MarksDesenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
 
Qt
QtQt
Qt
 
Slide PyQt versus Pyside
Slide PyQt versus PysideSlide PyQt versus Pyside
Slide PyQt versus Pyside
 
TDC2016 - Explorando Qt5 e Python em Linux Embarcado
TDC2016 - Explorando Qt5 e Python em Linux EmbarcadoTDC2016 - Explorando Qt5 e Python em Linux Embarcado
TDC2016 - Explorando Qt5 e Python em Linux Embarcado
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
Dicas de otimização para aplicações Qt
Dicas de otimização para aplicações QtDicas de otimização para aplicações Qt
Dicas de otimização para aplicações Qt
 
Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serpro
 
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
[CodeBEAM BR 2020] Construindo e Distribuindo CLIs com Elixir
 
Iniciando com kubernetes
Iniciando com kubernetesIniciando com kubernetes
Iniciando com kubernetes
 
JavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorldJavaDay2018 - Docker - Além do HelloWorld
JavaDay2018 - Docker - Além do HelloWorld
 
.NET Open Source
.NET Open Source.NET Open Source
.NET Open Source
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Hack Thursday - NodeJS
Hack Thursday - NodeJSHack Thursday - NodeJS
Hack Thursday - NodeJS
 

Destaque

Destaque (20)

Utilizando o recurso de camera dos smartphones da Nokia usando qt
Utilizando o recurso de camera dos smartphones da Nokia usando qtUtilizando o recurso de camera dos smartphones da Nokia usando qt
Utilizando o recurso de camera dos smartphones da Nokia usando qt
 
Big data, e eu com isso?
Big data, e eu com isso?Big data, e eu com isso?
Big data, e eu com isso?
 
Algoritmo de Smith-Waterman
Algoritmo de Smith-WatermanAlgoritmo de Smith-Waterman
Algoritmo de Smith-Waterman
 
PySide
PySidePySide
PySide
 
Arquivos FASTQ
Arquivos FASTQArquivos FASTQ
Arquivos FASTQ
 
Algoritmos gulosos
Algoritmos gulososAlgoritmos gulosos
Algoritmos gulosos
 
Listas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionáriosListas, tuplas, conjuntos e dicionários
Listas, tuplas, conjuntos e dicionários
 
Programação dinâmica
Programação dinâmicaProgramação dinâmica
Programação dinâmica
 
Busca em largura - BFS
Busca em largura - BFSBusca em largura - BFS
Busca em largura - BFS
 
Problema do Caixeiro Viajante
Problema do Caixeiro ViajanteProblema do Caixeiro Viajante
Problema do Caixeiro Viajante
 
Análise Assintótica
Análise AssintóticaAnálise Assintótica
Análise Assintótica
 
Algoritmo de Kosaraju
Algoritmo de KosarajuAlgoritmo de Kosaraju
Algoritmo de Kosaraju
 
Maratona de Programação com STL
Maratona de Programação com STLMaratona de Programação com STL
Maratona de Programação com STL
 
Backtracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntosBacktracking - Gerar todos os subconjuntos
Backtracking - Gerar todos os subconjuntos
 
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
 
Construção de interfaces gráficas com Tkinter
Construção de interfaces gráficas com TkinterConstrução de interfaces gráficas com Tkinter
Construção de interfaces gráficas com Tkinter
 
Árvores de Decisão
Árvores de DecisãoÁrvores de Decisão
Árvores de Decisão
 
Metaheurística Simulated Annealing
Metaheurística Simulated AnnealingMetaheurística Simulated Annealing
Metaheurística Simulated Annealing
 
Caminhos Mínimos - Algoritmo de Dijkstra
Caminhos Mínimos - Algoritmo de DijkstraCaminhos Mínimos - Algoritmo de Dijkstra
Caminhos Mínimos - Algoritmo de Dijkstra
 
Apostila ferramentas QT
Apostila ferramentas QTApostila ferramentas QT
Apostila ferramentas QT
 

Semelhante a Introdução ao Qt

Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 
Virtualização de Desktops
Virtualização de DesktopsVirtualização de Desktops
Virtualização de Desktops
apsegundo
 

Semelhante a Introdução ao Qt (20)

QtQuick
QtQuickQtQuick
QtQuick
 
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
 
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
 
Introdução ao qt
Introdução ao qtIntrodução ao qt
Introdução ao qt
 
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoTO Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
 
Csharp
CsharpCsharp
Csharp
 
Python em Ambientes Distribuídos - Arquitetura Moderna
Python em Ambientes Distribuídos - Arquitetura ModernaPython em Ambientes Distribuídos - Arquitetura Moderna
Python em Ambientes Distribuídos - Arquitetura Moderna
 
Webinar Novidades da Release R2017b
Webinar Novidades da Release R2017bWebinar Novidades da Release R2017b
Webinar Novidades da Release R2017b
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedorGit e Github: qual a importância dessas ferramentas para o desenvolvedor
Git e Github: qual a importância dessas ferramentas para o desenvolvedor
 
SonarQube
SonarQubeSonarQube
SonarQube
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
 
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...
 
FLTK Summer Course - Part I - First Impact
FLTK Summer Course - Part I - First ImpactFLTK Summer Course - Part I - First Impact
FLTK Summer Course - Part I - First Impact
 
Virtualização de Desktops
Virtualização de DesktopsVirtualização de Desktops
Virtualização de Desktops
 
Sonarqube
SonarqubeSonarqube
Sonarqube
 
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
Microsoft e Open Source: expandindo as fronteiras no Desenvolvimento de Softw...
 

Último

Último (8)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Introdução ao Qt

  • 2. OBJETIVOS ● O Framework Qt ● O que é o Qt? ● Por que usar o Qt? ● Quem usa Qt? ● Interface com QtQuick ● QML ● Qt Creator IDE ● C++ API ● Multiplataforma ● QtMobility 2
  • 4. O que é o Qt? • É um framework para aplicações multi-plataforma em C+++. • Suporta aplicações com e sem interface gráfica. • Desenvolvido inicialmente pela TrollTech e atualmente mantido como projeto OpenSource pela Nokia. 4
  • 5. Por que usar o Qt? • É baseado no C++ padrão mas pode ser utilizado com diversas outras linguagens. • Possui suporte a internacionalização de Aplicações. • Roda nas principais plataformas móveis e de desktop. • É distribuido nas licenças LGPL v2.1, GPL e Comercial (Qt Comercial). • Suporta recursos gráficos avançados. • Permite a mistura de código nativo com código web. 5
  • 6. Por que usar o Qt? ● Qt é o framework utilizado para desenvolvimento de aplicações nas plataformas Symbian, Maemo e MeeGo. Nokia Nokia Nokia N9 X7-00 N900 6
  • 7. Por que usar o Qt? • Permite escrever um único código para múltiplas plataformas. • Possui uma IDE com suporte a drag-n-drop. 7
  • 8. Por que usar o Qt? • Utiliza o conceito de sinal-slot, modelo MVC, graphics view/scene/item. • Possui ampla documentação. • Uma comunidade ativa e participativa. 8
  • 9. Quem usa Qt? Adobe Photoshop Elements Autodesk Maya Skype
  • 10. Quem usa Qt? Google Earth Wolfram Mathematica
  • 12. • QtQuick (Qt User Interface Creation Kit) é uma interface de alto nível para criação simplificada de interfaces. • É composto por: • QML: Uma linguagem declarativa • Qt Creator • API em C++ para integração com o Qt 12
  • 13. QML • QML é uma linguagem declarativa para elementos de interface gráfica. • Descreve a interface gráfica ● Como os elementos são ● Como eles se comportam • A interface final é uma árvore de elementos com propriedades (semelhante ao HTML) 13
  • 14. QML
  • 15. QML import QtQuick 1.1 // Define um quadrado azul claro Rectangle { width: 400; height: 400 color: "lightblue" } • Para usar um módulo, primeiro precisamos importá-lo. • Especifique o nome do módulo e a versão desejada 15
  • 16. QML Import QtQuick 1.1 // Define um quadrado azul claro Rectangle { width: 400; height: 400 color: "lightblue" } • Comentários podem ser definidos com: ● // para comentários de uma linha ● /* ... */ para comentários em bloco
  • 17. QML Import QtQuick 1.1 // Define um quadrado azul claro Rectangle { width: 400; height: 400 color: "lightblue" } • Declare os elementos que queria usar • O corpo do elemento é o que fica entre chaves. • Vários elementos padrão são incluídos. • Novos elementos podem ser especificados 17
  • 18. QML Import QtQuick 1.1 // Define um quadrado azul claro Rectangle { width: 400; height: 400 color: "lightblue" } • Elementos contém propriedades • Cada propriedade é definida usando um nome e um valor ● nome: valor 18
  • 19. QML Import QtQuick 1.1 // Define um quadrado azul claro Rectangle { width: 400; height: 400 color: "lightblue" } • Um elemento Rectangle ● Definido entre chaves ● Contendo as propriedades width, height e color 19
  • 20. QML • Vários elementos estão disponível para uso. ● São estruturas na linguagem ● Representam partes visíveis e não visíveis. • Item é o elemento mais básico ● Não é visível por si só ● Tem uma posição e dimensões ● É usado para agrupar elementos visuais ● Geralmente é o elemento de maior nível • Outros elementos: ● Text, TextInput, Page, Circle, Row, Column... 20
  • 21. QML • QML também define elementos sem representação visual ● Estados, transições. ● Gradientes, timers. • Cada elemento possui propriedades ● Propriedades customizadas podem podem ser criadas • Consultar documentação sobre as propriedades de cada tipo de elemento. 21
  • 22. Qt Creator IDE • O Qt Creator IDE possui: ● Editor visual para criar e editar componentes QML ● Ferramentas de projeto e build de aplicações ● Sistema de ajuda integrado e sensível ao contexto ● Debuger visual ● Ferramentas para navegação rápida no código ● Highlight de sintaxe e code completion 22
  • 23. Qt Creator IDE Modo de Design Barra de Símbolos Projetos Seletor de Modo Run Build Painéis de Pesquisa informação
  • 24. Qt Creator IDE Variáveis Debuger Controles de Fluxo
  • 27. Qt Creator IDE • É instalado automaticamente com o QtSDK ● qt.nokia.com/downloads/ ● Versões para Windows, Linux e MacOS ● Pacotes de instalação On-Line e Off-Line • Pode ser instalado como standalone 27
  • 28. C++ API • O Qt Quick suporta interação com C++ ● QtDeclarative é a API que permite interagir e gerenciar componentes ● A interação ocorre através de objetos expostos ao ambiente QML como novos tipos • Elementos não visuais são subclasses do tipo QObject. • Tipos visuais (items) são subclasses do tipo QDeclarativeItem ● QdeclarativeItem é o equivalente ao Item do QML • A interação entre QML e C++ ocorre através de: ● Propriedades ● Sinais e Slots (métodos que não retornam valores) ● Métodos (definidos com a macro Q_INVOKABLE) 28
  • 29. C++ API EXEMPLO 29
  • 31. QtMobility • O Projeto QtMobility cobre uma vasta gama de tecnologias e funcionalidades. ● É um conjunto de APIs e Frameworks que proveem uma interface única de acesso a recursos, independente de plataforma. • É suportado por Linux, Windows, Mac OS, Symbiam, Meego e Maemo 5. 31
  • 32. QtMobility • QtMobility APIs ● Messaging: Uma interface comum para SMS, MMS e E-Mail ● Contatos ● Localização: posicionamento, postos de referência, mapas ● Multimídia ● Informações de Sistema ● Sensores ... 32
  • 33. QtMobility • Algumas APIs possuem plugins QML ● Com isso é possível desenvolver aplicações poderosas e multiplataforma apenas com QML 33
  • 35. Mais Informações • @nokiadev_brasil • http://blog.qtlabs.org.br/ • http://bit.ly/NokiaDev_Qt_Brasil • E-mail: daniel.bittencourt@openbossa.org 35