Qt Techday - João Pessoa

Preview:

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.

Citation preview

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

Agenda

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

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

Qt Labs Americas

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

http://qtlabs.openbossa.org

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

Quem é Eduardo?

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

Open Source

Por que investir emOpen Source?

Quem usa Qt?

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

O que é Qt?

Framework multi-plataforma para desenvolvimento de softwares

Quem faz o Qt?

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

http://qt.gitorious.org

C++

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

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

Sistema deMeta Objetos

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

Signals / Slots

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

Macros importantes:• SIGNAL()• SLOT()

Main loop

O que é Main Loop?

Classes Non-GUI

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

GUI

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

Layouts

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

QtWebkit

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

Ferramentas

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

Agradecimentos

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

Dúvidas?

Anselmo L. S. de Melo (anselmolsm)anselmo.melo@openbossa.orghttp://www.anselmolsm.org

Eduardo Madeira Fleury (fleury)eduardo.fleury@openbossa.orghttp://www.eduardofleury.com

http://qtlabs.openbossa.org

Freenode #qt-labs #kde-brasil

Parte Prática

Signals and Slots

• Widgets - QDial, QLCDNumber, QProgressBar,QSlider

QWidgets - Address Book

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

Interfaces com Canvas

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

Animando sua interface

• QStateMachine• Animations e Animations Groups• QEasingCurve

Web Browser

Utilizar os elementos anteriores para criar umnavegador

• QtWebkit

Desafio!