Qt Techday - João Pessoa

1.458 visualizações

Publicada em

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.

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Qt Techday - João Pessoa

  1. 1. 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
  2. 2. Agenda • Introdução teórica • Almoço :) • Hands on!
  3. 3. 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
  4. 4. Qt Labs Americas • Iniciativa do openBossa • Desenvolvimento de comunidades Qt e KDE nas Américas http://qtlabs.openbossa.org
  5. 5. Quem é Anselmo? • Formando na UNICAMP - Campinas/Brasil • Trabalha com Linux em sistemas embarcados desde 2006 (AsGa, WiMobilis) • Instituto Nokia de Tecnologia (openBossa stream) • Membro do KDE Bugsquad
  6. 6. Quem é Eduardo? • Formando na UNICAMP - Campinas/Brasil • Trabalha com Linux desde 2006 • IBM Linux Technology Center • Instituto Nokia de Tecnologia
  7. 7. Open Source Por que investir em Open Source?
  8. 8. Quem usa Qt? • Asus • EPSON • AMD • Google • Skype • Volkswagen / Volvo • Xerox • Philips • Nokia :) • KDE / outros projetos open source
  9. 9. O que é Qt? Framework multi-plataforma para desenvolvimento de softwares
  10. 10. Quem faz o Qt? • Qt Development Frameworks (ex-Trolltech), Nokia • Comunidade • Você :) http://qt.gitorious.org
  11. 11. C++ • Herança • Métodos Virtuais / Polimorfismo • Casts • Gerenciamento de Memória
  12. 12. 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
  13. 13. Sistema de Meta Objetos • MOC - Meta Object Compiler • Macros: Q_Object, Q_PROPERTY, Q_ENUMS, etc..
  14. 14. Signals / Slots Sinais emitidos por um objeto acionam métodos ou sinais desse mesmo objeto ou de um outro objeto. Macros importantes: • SIGNAL() • SLOT()
  15. 15. Main loop O que é Main Loop?
  16. 16. Classes Non-GUI • Estruturas de dados: Listas, Hash, etc • Strings • Streams • Multimedia • Threads • IPC • Arquivos • Rede • Banco de dados • XML
  17. 17. GUI • Widgets tradicionais vs Widgets em um canvas • Animações • QML - L. Declarativa (em desenvolvimento)
  18. 18. Layouts Utilizados para lidar automaticamente com tamanhos e posições de widgets.
  19. 19. QtWebkit QtWebkit é um port do webkit para Qt, dando todo o poder do Webkit para uma aplicação Qt.
  20. 20. Ferramentas • Qt Assistant • Qt Designer • Qt Creator • QDBusXML2CPP / QDBusCPP2XML • Qt Linguist
  21. 21. Agradecimentos • Faculdade iDez • Igor Andrade • Artur Duque de Souza (MoRpHeUz) • Qt Development Frameworks - http://qt.nokia.com
  22. 22. Dúvidas? Anselmo L. S. de Melo (anselmolsm) anselmo.melo@openbossa.org http://www.anselmolsm.org Eduardo Madeira Fleury (fleury) eduardo.fleury@openbossa.org http://www.eduardofleury.com http://qtlabs.openbossa.org Freenode #qt-labs #kde-brasil
  23. 23. Parte Prática
  24. 24. Signals and Slots • Widgets - QDial, QLCDNumber, QProgressBar, QSlider
  25. 25. QWidgets - Address Book • Widgets - QPushButton, QLabel, QLineEdit • QLayout • QMessageBox
  26. 26. Interfaces com Canvas • QGraphicsScene - A sua cena • QGraphicsView - A sua view • QGraphicsWidget • QGraphicsLayout • Widget customizado • QProxyWidget
  27. 27. Animando sua interface • QStateMachine • Animations e Animations Groups • QEasingCurve
  28. 28. Web Browser Utilizar os elementos anteriores para criar um navegador • QtWebkit
  29. 29. Desafio!

×