Qt

1.418 visualizações

Publicada em

En: Basic presentation about Qt in pt_BR
Pt_BR: Apresentação sobre os fundamentos do Qt

Publicada em: Tecnologia
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Qt

  1. 1. Treinamento Básico Qt Teoria e Hands on Artur Duque de Souza - MoRpHeUz Agosto/2009, UPFE - Recife - PE
  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 sou eu? • Desenvolvedor open source desde 1997 • Formando na UNICAMP - Campinas/Brasil • Trabalhei na IBM (Linux Technology Center) • Trabalho para o INdT (openBossa stream) • Contribuições: Canola2, MythTV, EFL, Maemo, MPlayer, KDE, etc. • Desenvolvedor KDE • Membro do KDE e.V.
  6. 6. Quem é Jesus? • Formado aqui! • Trabalhei no GPRT, na Itautec e agora no INdT • Contribuições: openOCD, QEdje, ERESI, urJTAG, ... • Membro fundador: CInLUG e wouwlabs
  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? • Desenvolvedores da Nokia - 14 anos de experiência • Comunidade • Você :) http://qt.gitorious.org
  11. 11. Main loop O que é Main Loop?
  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. Métodos virtuais São métodos que podem ser sobreescritos por métodos de classes filhas com a mesma assinatura. Muito útil para programação orientada a objetos e em polimorfismo.
  16. 16. Widgets • Widgets tradicionais vs Widgets em um canvas • Animações • Qt Designer • QML - Linguagem Declarativa
  17. 17. Layouts Utilizados para lidar automaticamente com tamanhos e posições de widgets.
  18. 18. Classes Non-GUI • Threads • IPC • Arquivos • Rede • Banco de dados • XML
  19. 19. Webkit QtWebkit é um port do webkit para Qt, dando todo o poder do Webkit para uma aplicação Qt.
  20. 20. Ferramentas • Qt Designer • Qt Creator • QDBusXML2CPP / QDBusCPP2XML
  21. 21. Agradecimentos • CIn - UFPE • Igor Andrade • Qt Development Frameworks
  22. 22. Dúvidas? Artur de Souza (MoRpHeUz) artur.souza@openbossa.org http://blog.morpheuz.cc http://qtlabs.openbossa.org Freenode #qt-labs #kde-brasil
  23. 23. Hands on!
  24. 24. QWidgets - Address Book • Widgets - QPushButton, QLabel, QLineEdit • QLayout • QMessageBox
  25. 25. Interfaces com Canvas • QGraphicsScene - A sua cena • QGraphicsView - A sua view • QGraphicsWidget • QGraphicsLayout • Widget customizado • QProxyWidget
  26. 26. Animando sua interface • QStateMachine • Animations e Animations Groups • QEasingCurve
  27. 27. Web Browser Utilizar os elementos anteriores para criar um navegador • QtWebkit
  28. 28. Desafio!

×