qt techday - joão pessoa
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
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)[email protected]://www.anselmolsm.org
Eduardo Madeira Fleury (fleury)[email protected]://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!