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
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
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
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
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