Qt Techday - João Pessoa

29
Treinamento Básico Qt Teoria e Hands on Anselmo Lacerda Silveira de Melo e Eduardo Madeira Fleury Setembro/2009, Faculdade iDez - João Pessoa - PB

description

pt: Treinamento básico de Qt na Faculdade iDez, João Pessoa, PB, Brasil em Setembro de 2009. en: Basic Qt training at Faculdade iDez, João Pessoa, Paraíba, Brazil in September, 2009.

Transcript of Qt Techday - João Pessoa

Page 1: Qt Techday - João Pessoa

Treinamento Básico QtTeoria e Hands onAnselmo Lacerda Silveira de Melo e Eduardo Madeira FleurySetembro/2009, Faculdade iDez - João Pessoa - PB

Page 2: Qt Techday - João Pessoa

Agenda

• Introdução teórica• Almoço :)• Hands on!

Page 3: Qt Techday - João Pessoa

Quem somos nós?

• INdT - Instituto Nokia de Tecnologia• openBossa - stream open source do INdT• Projetos mais conhecidos: Canola, Carman• Parceria com Qt Development Frameworks / KDE:

• Qt Kinetic• Qt Webkit• Plasma Netbook• ItemViews-NG

Page 4: Qt Techday - João Pessoa

Qt Labs Americas

• Iniciativa do openBossa• Desenvolvimento de comunidades Qt e KDE nasAméricas

http://qtlabs.openbossa.org

Page 5: Qt Techday - João Pessoa

Quem é Anselmo?

• Formando na UNICAMP - Campinas/Brasil• Trabalha com Linux em sistemas embarcadosdesde 2006 (AsGa, WiMobilis)

• Instituto Nokia de Tecnologia (openBossa stream)• Membro do KDE Bugsquad

Page 6: Qt Techday - João Pessoa

Quem é Eduardo?

• Formando na UNICAMP - Campinas/Brasil• Trabalha com Linux desde 2006• IBM Linux Technology Center• Instituto Nokia de Tecnologia

Page 7: Qt Techday - João Pessoa

Open Source

Por que investir emOpen Source?

Page 8: Qt Techday - João Pessoa

Quem usa Qt?

• Asus• EPSON• AMD• Google• Skype• Volkswagen / Volvo• Xerox• Philips• Nokia :)• KDE / outros projetos open source

Page 9: Qt Techday - João Pessoa

O que é Qt?

Framework multi-plataforma para desenvolvimento de softwares

Page 10: Qt Techday - João Pessoa

Quem faz o Qt?

• Qt Development Frameworks (ex-Trolltech), Nokia• Comunidade• Você :)

http://qt.gitorious.org

Page 11: Qt Techday - João Pessoa

C++

• Herança• Métodos Virtuais / Polimorfismo• Casts• Gerenciamento de Memória

Page 12: Qt Techday - João Pessoa

Modelo de Objetos Qt

O que ele adiciona ao modelo comum:• +Propriedades• +Sinais/Slots• +Tradução de Strings• +Gerencimento de memória• +dynamic_cast especial (sem suporte RTTI)• +Eventos e filtro de eventos• =QObject

Page 13: Qt Techday - João Pessoa

Sistema deMeta Objetos

• MOC - Meta Object Compiler• Macros: Q_Object, Q_PROPERTY, Q_ENUMS, etc..

Page 14: Qt Techday - João Pessoa

Signals / Slots

Sinais emitidos por um objeto acionammétodos ousinais desse mesmo objeto ou de um outro objeto.

Macros importantes:• SIGNAL()• SLOT()

Page 15: Qt Techday - João Pessoa

Main loop

O que é Main Loop?

Page 16: Qt Techday - João Pessoa

Classes Non-GUI

• Estruturas de dados: Listas, Hash, etc• Strings• Streams• Multimedia• Threads• IPC• Arquivos• Rede• Banco de dados• XML

Page 17: Qt Techday - João Pessoa

GUI

• Widgets tradicionais vs Widgets em um canvas• Animações• QML - L. Declarativa (em desenvolvimento)

Page 18: Qt Techday - João Pessoa

Layouts

Utilizados para lidar automaticamente com tamanhose posições de widgets.

Page 19: Qt Techday - João Pessoa

QtWebkit

QtWebkit é um port do webkit para Qt, dando todo opoder do Webkit para uma aplicação Qt.

Page 20: Qt Techday - João Pessoa

Ferramentas

• Qt Assistant• Qt Designer• Qt Creator• QDBusXML2CPP / QDBusCPP2XML• Qt Linguist

Page 21: Qt Techday - João Pessoa

Agradecimentos

• Faculdade iDez• Igor Andrade• Artur Duque de Souza (MoRpHeUz)• Qt Development Frameworks -http://qt.nokia.com

Page 22: Qt Techday - João Pessoa

Dúvidas?

Anselmo L. S. de Melo (anselmolsm)[email protected]://www.anselmolsm.org

Eduardo Madeira Fleury (fleury)[email protected]://www.eduardofleury.com

http://qtlabs.openbossa.org

Freenode #qt-labs #kde-brasil

Page 23: Qt Techday - João Pessoa

Parte Prática

Page 24: Qt Techday - João Pessoa

Signals and Slots

• Widgets - QDial, QLCDNumber, QProgressBar,QSlider

Page 25: Qt Techday - João Pessoa

QWidgets - Address Book

• Widgets - QPushButton, QLabel, QLineEdit• QLayout• QMessageBox

Page 26: Qt Techday - João Pessoa

Interfaces com Canvas

• QGraphicsScene - A sua cena• QGraphicsView - A sua view• QGraphicsWidget• QGraphicsLayout• Widget customizado• QProxyWidget

Page 27: Qt Techday - João Pessoa

Animando sua interface

• QStateMachine• Animations e Animations Groups• QEasingCurve

Page 28: Qt Techday - João Pessoa

Web Browser

Utilizar os elementos anteriores para criar umnavegador

• QtWebkit

Page 29: Qt Techday - João Pessoa

Desafio!