Introdução ao Qt

35
1 Introdução ao Qt

description

Slides de Introdução ao Qt.

Transcript of Introdução ao Qt

Page 1: Introdução ao Qt

1

Introdução ao Qt

Page 2: Introdução ao Qt

OBJETIVOS

2

● 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

Page 3: Introdução ao Qt

O Framework Qt

3

Page 4: Introdução ao Qt

O que é o Qt?

4

• É 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.

Page 5: Introdução ao Qt

Por que usar o Qt?

5

• É 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.

Page 6: Introdução ao Qt

Por que usar o Qt?

6

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

Nokia X7-00

Nokia N900

Nokia N9

Page 7: Introdução ao Qt

Por que usar o Qt?

7

• Permite escrever um único código para múltiplas plataformas.

• Possui uma IDE com suporte a drag-n-drop.

Page 8: Introdução ao Qt

Por que usar o Qt?

8

• Utiliza o conceito de sinal-slot, modelo MVC, graphics view/scene/item.

• Possui ampla documentação.

• Uma comunidade ativa e participativa.

Page 9: Introdução ao Qt

Adobe Photoshop ElementsAutodesk Maya

Skype

Quem usa Qt?

Page 10: Introdução ao Qt

Google EarthWolfram Mathematica

Quem usa Qt?

Page 11: Introdução ao Qt

Interface com QtQuick

11

Page 12: Introdução ao Qt

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

Page 13: Introdução ao Qt

QML

13

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

Page 14: Introdução ao Qt

QML

Page 15: Introdução ao Qt

QML

15

• Para usar um módulo, primeiro precisamos importá-lo.

• Especifique o nome do módulo e a versão desejada

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

Page 16: Introdução ao Qt

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

QML

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

Page 17: Introdução ao Qt

QML

17

• 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

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

Page 18: Introdução ao Qt

QML

18

• Elementos contém propriedades

• Cada propriedade é definida usando um nome e um valor

● nome: valor

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

Page 19: Introdução ao Qt

QML

19

• Um elemento Rectangle● Definido entre chaves

● Contendo as propriedades width, height e color

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

Page 20: Introdução ao Qt

QML

20

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

Page 21: Introdução ao Qt

QML

21

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

Page 22: Introdução ao Qt

Qt Creator IDE

22

• 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

Page 23: Introdução ao Qt

Qt Creator IDE

Run

BuildPesquisa

Barra de Projetos

Símbolos

Seletor de Modo

Painéis de informação

Modo de Design

Page 24: Introdução ao Qt

Qt Creator IDE

Debuger

Controles de Fluxo

Variáveis

Page 25: Introdução ao Qt

Qt Creator IDE

Tipo de Build

Page 26: Introdução ao Qt

Qt Creator IDE

Page 27: Introdução ao Qt

Qt Creator IDE

27

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

Page 28: Introdução ao Qt

C++ API

28

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

Page 29: Introdução ao Qt

C++ API

29

EXEMPLO

Page 30: Introdução ao Qt

Multiplataforma

30

Page 31: Introdução ao Qt

QtMobility

31

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

Page 32: Introdução ao Qt

QtMobility

32

• 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

...

Page 33: Introdução ao Qt

QtMobility

33

• Algumas APIs possuem plugins QML● Com isso é possível desenvolver aplicações

poderosas e multiplataforma apenas com QML

Page 34: Introdução ao Qt

QtMobility

34

Page 35: Introdução ao Qt

Mais Informações

35

• @nokiadev_brasil• http://blog.qtlabs.org.br/• http://bit.ly/NokiaDev_Qt_Brasil• E-mail: [email protected]