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
![Page 1: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/2.jpg)
Agenda
• Introdução teórica• Almoço :)• Hands on!
![Page 3: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/7.jpg)
Open Source
Por que investir emOpen Source?
![Page 8: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/9.jpg)
O que é Qt?
Framework multi-plataforma para desenvolvimento de softwares
![Page 10: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/10.jpg)
Quem faz o Qt?
• Qt Development Frameworks (ex-Trolltech), Nokia• Comunidade• Você :)
http://qt.gitorious.org
![Page 11: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/11.jpg)
C++
• Herança• Métodos Virtuais / Polimorfismo• Casts• Gerenciamento de Memória
![Page 12: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/13.jpg)
Sistema deMeta Objetos
• MOC - Meta Object Compiler• Macros: Q_Object, Q_PROPERTY, Q_ENUMS, etc..
![Page 14: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/15.jpg)
Main loop
O que é Main Loop?
![Page 16: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/17.jpg)
GUI
• Widgets tradicionais vs Widgets em um canvas• Animações• QML - L. Declarativa (em desenvolvimento)
![Page 18: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/18.jpg)
Layouts
Utilizados para lidar automaticamente com tamanhose posições de widgets.
![Page 19: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/20.jpg)
Ferramentas
• Qt Assistant• Qt Designer• Qt Creator• QDBusXML2CPP / QDBusCPP2XML• Qt Linguist
![Page 21: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/21.jpg)
Agradecimentos
• Faculdade iDez• Igor Andrade• Artur Duque de Souza (MoRpHeUz)• Qt Development Frameworks -http://qt.nokia.com
![Page 22: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/23.jpg)
Parte Prática
![Page 24: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/24.jpg)
Signals and Slots
• Widgets - QDial, QLCDNumber, QProgressBar,QSlider
![Page 25: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/25.jpg)
QWidgets - Address Book
• Widgets - QPushButton, QLabel, QLineEdit• QLayout• QMessageBox
![Page 26: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/26.jpg)
Interfaces com Canvas
• QGraphicsScene - A sua cena• QGraphicsView - A sua view• QGraphicsWidget• QGraphicsLayout• Widget customizado• QProxyWidget
![Page 27: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/27.jpg)
Animando sua interface
• QStateMachine• Animations e Animations Groups• QEasingCurve
![Page 28: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/28.jpg)
Web Browser
Utilizar os elementos anteriores para criar umnavegador
• QtWebkit
![Page 29: Qt Techday - João Pessoa](https://reader033.vdocuments.site/reader033/viewer/2022051323/548502b2b4af9f6e0d8b4d17/html5/thumbnails/29.jpg)
Desafio!