Treinamento Básico Qt
Teoria e Hands on
Artur Duque de Souza - MoRpHeUz
Agosto/2009, UPFE - Recife - PE
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 co...
Qt Labs Americas



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

           ht...
Quem sou eu?




  • Desenvolvedor open source desde 1997
  • Formando na UNICAMP - Campinas/Brasil
  • Trabalhei na IBM (...
Quem é Jesus?



  • Formado aqui!
  • Trabalhei no GPRT, na Itautec e agora no INdT
  • Contribuições: openOCD, QEdje, ER...
Open Source




 Por que investir em Open Source?
Quem usa Qt?

  • Asus
  • EPSON
  • AMD
  • Google
  • Skype
  • Volkswagen / Volvo
  • Xerox
  • Philips
  • Nokia :)
  ...
O que é Qt?

Framework multi-plataforma para desenvolvimento de softwares
Quem faz o Qt?


  • Desenvolvedores da Nokia - 14 anos de
    experiência
  • Comunidade
  • Você :)

              http:...
Main loop




        O que é Main Loop?
Modelo de Objetos Qt

O que ele adiciona ao modelo comum:
   • +Propriedades
   • +Sinais/Slots
   • +Tradução de Strings
...
Sistema de Meta Objetos




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



 Sinais emitidos por um objeto acionam métodos ou
 sinais desse mesmo objeto ou de um outro objeto.

Ma...
Métodos virtuais



   São métodos que podem ser sobreescritos por
 métodos de classes filhas com a mesma assinatura.
Muit...
Widgets



  • Widgets tradicionais vs Widgets em um canvas
  • Animações
  • Qt Designer
  • QML - Linguagem Declarativa
Layouts




Utilizados para lidar automaticamente com tamanhos
                e posições de widgets.
Classes Non-GUI


  • Threads
  • IPC
  • Arquivos
  • Rede
  • Banco de dados
  • XML
Webkit




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




  • Qt Designer
  • Qt Creator
  • QDBusXML2CPP / QDBusCPP2XML
Agradecimentos




  • CIn - UFPE
  • Igor Andrade
  • Qt Development Frameworks
Dúvidas?



           Artur de Souza (MoRpHeUz)
            artur.souza@openbossa.org
              http://blog.morpheuz....
Hands on!
QWidgets - Address Book




  • Widgets - QPushButton, QLabel, QLineEdit
  • QLayout
  • QMessageBox
Interfaces com Canvas


  • QGraphicsScene - A sua cena
  • QGraphicsView - A sua view
  • QGraphicsWidget
  • QGraphicsLa...
Animando sua interface



  • QStateMachine
  • Animations e Animations Groups
  • QEasingCurve
Web Browser




   Utilizar os elementos anteriores para criar um
                     navegador

  • QtWebkit
Desafio!
Upcoming SlideShare
Loading in …5
×

Qt

1,332 views
1,226 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,332
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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!

×