SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
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 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 nas
   Américas

           http://qtlabs.openbossa.org
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.
Quem é Jesus?



  • Formado aqui!
  • Trabalhei no GPRT, na Itautec e agora no INdT
  • Contribuições: openOCD, QEdje, ERESI, urJTAG, ...
  • Membro fundador: CInLUG e wouwlabs
Open Source




 Por que investir em Open 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?


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

              http://qt.gitorious.org
Main loop




        O que é Main Loop?
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 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.

Macros importantes:
  • SIGNAL()
  • SLOT()
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.
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.cc
            http://qtlabs.openbossa.org

           Freenode #qt-labs #kde-brasil
Hands on!
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 um
                     navegador

  • QtWebkit
Desafio!

Más contenido relacionado

Destacado

Ethydco experience 2
Ethydco experience 2Ethydco experience 2
Ethydco experience 2
Khairy Khalil
 

Destacado (18)

Творча лабораторія вчителів історії КЗ “НСЗШ №9”
Творча лабораторія вчителів  історії  КЗ “НСЗШ  №9”Творча лабораторія вчителів  історії  КЗ “НСЗШ  №9”
Творча лабораторія вчителів історії КЗ “НСЗШ №9”
 
Il talento e la comfort zone
Il talento e la comfort zoneIl talento e la comfort zone
Il talento e la comfort zone
 
Eco cuadernillo actividades_1_bachillerato
Eco cuadernillo actividades_1_bachilleratoEco cuadernillo actividades_1_bachillerato
Eco cuadernillo actividades_1_bachillerato
 
Fragen (Huesca)
Fragen (Huesca)Fragen (Huesca)
Fragen (Huesca)
 
Estudio de diseño - Dink
Estudio de diseño - DinkEstudio de diseño - Dink
Estudio de diseño - Dink
 
Act 11
Act 11 Act 11
Act 11
 
El reino animal
El reino animalEl reino animal
El reino animal
 
Các phương pháp thải độc cho cơ thể
Các phương pháp thải độc cho cơ thểCác phương pháp thải độc cho cơ thể
Các phương pháp thải độc cho cơ thể
 
Cartelera
CarteleraCartelera
Cartelera
 
CHANDER PRAKASH
CHANDER PRAKASHCHANDER PRAKASH
CHANDER PRAKASH
 
Ethydco experience 2
Ethydco experience 2Ethydco experience 2
Ethydco experience 2
 
Tutorial Energia solar 2006
Tutorial Energia solar 2006Tutorial Energia solar 2006
Tutorial Energia solar 2006
 
Ilusiones opticas
Ilusiones opticasIlusiones opticas
Ilusiones opticas
 
Violación
ViolaciónViolación
Violación
 
SEMINARIO LEY DE RESPONSABILIDAD PENAL ADOLESCENTE DESAFÍOS Y OPORTUNIDADES
SEMINARIO LEY DE RESPONSABILIDAD PENAL ADOLESCENTE  DESAFÍOS Y OPORTUNIDADESSEMINARIO LEY DE RESPONSABILIDAD PENAL ADOLESCENTE  DESAFÍOS Y OPORTUNIDADES
SEMINARIO LEY DE RESPONSABILIDAD PENAL ADOLESCENTE DESAFÍOS Y OPORTUNIDADES
 
Expo 2008
Expo 2008Expo 2008
Expo 2008
 
Sistema de Responsabilidad Penal Adolescente
Sistema de Responsabilidad Penal AdolescenteSistema de Responsabilidad Penal Adolescente
Sistema de Responsabilidad Penal Adolescente
 
Aparato digestivo
Aparato digestivoAparato digestivo
Aparato digestivo
 

Similar a Qt

Similar a Qt (20)

A Plataforma Maemo
A Plataforma MaemoA Plataforma Maemo
A Plataforma Maemo
 
Webinar: Qt: um toolkit, um código-fonte, múltiplas plataformas
Webinar: Qt: um toolkit, um código-fonte, múltiplas plataformasWebinar: Qt: um toolkit, um código-fonte, múltiplas plataformas
Webinar: Qt: um toolkit, um código-fonte, múltiplas plataformas
 
Kde para iniciantes - Camila Ayres
Kde para iniciantes - Camila AyresKde para iniciantes - Camila Ayres
Kde para iniciantes - Camila Ayres
 
Desenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com QtDesenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com Qt
 
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoTO Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
 
Introdução ao qt
Introdução ao qtIntrodução ao qt
Introdução ao qt
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
 
KDE Neon & KDE Plasma: venha para o KDE e ganhe experiencia profissional em TI
KDE Neon & KDE Plasma: venha para o KDE e ganhe experiencia profissional em TIKDE Neon & KDE Plasma: venha para o KDE e ganhe experiencia profissional em TI
KDE Neon & KDE Plasma: venha para o KDE e ganhe experiencia profissional em TI
 
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
 
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
 
Qt: O Seu toolkit para C++/Python com o verdadeiro: Write Once Deploys Everyw...
Qt: O Seu toolkit para C++/Python com o verdadeiro: Write Once Deploys Everyw...Qt: O Seu toolkit para C++/Python com o verdadeiro: Write Once Deploys Everyw...
Qt: O Seu toolkit para C++/Python com o verdadeiro: Write Once Deploys Everyw...
 
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
 
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Tecnologias em 2021: no que ficar de olho? | WTT2021 - MackenzieTecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET Core
 
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
 
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
 
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
 

Más de OpenBossa

Connecting Technology for Great Experiences - How does QML and Web fit together?
Connecting Technology for Great Experiences - How does QML and Web fit together?Connecting Technology for Great Experiences - How does QML and Web fit together?
Connecting Technology for Great Experiences - How does QML and Web fit together?
OpenBossa
 

Más de OpenBossa (11)

PySide
PySidePySide
PySide
 
Connecting Technology for Great Experiences - How does QML and Web fit together?
Connecting Technology for Great Experiences - How does QML and Web fit together?Connecting Technology for Great Experiences - How does QML and Web fit together?
Connecting Technology for Great Experiences - How does QML and Web fit together?
 
Intro to QML / Declarative UI
Intro to QML / Declarative UIIntro to QML / Declarative UI
Intro to QML / Declarative UI
 
Multi View Constructed Right
Multi View Constructed RightMulti View Constructed Right
Multi View Constructed Right
 
The Unusual Suspect: Layouts for sleeker KDE applications
The Unusual Suspect: Layouts for sleeker KDE applicationsThe Unusual Suspect: Layouts for sleeker KDE applications
The Unusual Suspect: Layouts for sleeker KDE applications
 
The Unusual Suspect: Layouts for sleeker KDE applications
The Unusual Suspect: Layouts for sleeker KDE applicationsThe Unusual Suspect: Layouts for sleeker KDE applications
The Unusual Suspect: Layouts for sleeker KDE applications
 
O que há de novo no Plasma Netbook?
O que há de novo no Plasma Netbook?O que há de novo no Plasma Netbook?
O que há de novo no Plasma Netbook?
 
What's up about Plasma-MID?
What's up about Plasma-MID?What's up about Plasma-MID?
What's up about Plasma-MID?
 
KDE in Your Life from Desktop to Pocket
KDE in Your Life from Desktop to PocketKDE in Your Life from Desktop to Pocket
KDE in Your Life from Desktop to Pocket
 
Brasil, Open Source e o Mundo dos Negócios
Brasil, Open Source e o Mundo dos NegóciosBrasil, Open Source e o Mundo dos Negócios
Brasil, Open Source e o Mundo dos Negócios
 
Negócios e Open Source
Negócios e Open SourceNegócios e Open Source
Negócios e Open Source
 

Último

Último (8)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 

Qt

  • 1. Treinamento Básico Qt Teoria e Hands on Artur Duque de Souza - MoRpHeUz Agosto/2009, UPFE - Recife - PE
  • 2. Agenda • Introdução teórica • Almoço :) • Hands on!
  • 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. Qt Labs Americas • Iniciativa do openBossa • Desenvolvimento de comunidades Qt e KDE nas Américas http://qtlabs.openbossa.org
  • 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. 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. Open Source Por que investir em Open Source?
  • 8. Quem usa Qt? • Asus • EPSON • AMD • Google • Skype • Volkswagen / Volvo • Xerox • Philips • Nokia :) • KDE / outros projetos open source
  • 9. O que é Qt? Framework multi-plataforma para desenvolvimento de softwares
  • 10. Quem faz o Qt? • Desenvolvedores da Nokia - 14 anos de experiência • Comunidade • Você :) http://qt.gitorious.org
  • 11. Main loop O que é Main Loop?
  • 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. Sistema de Meta Objetos • MOC - Meta Object Compiler • Macros: Q_Object, Q_PROPERTY, Q_ENUMS, etc..
  • 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. 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. Widgets • Widgets tradicionais vs Widgets em um canvas • Animações • Qt Designer • QML - Linguagem Declarativa
  • 17. Layouts Utilizados para lidar automaticamente com tamanhos e posições de widgets.
  • 18. Classes Non-GUI • Threads • IPC • Arquivos • Rede • Banco de dados • XML
  • 19. Webkit QtWebkit é um port do webkit para Qt, dando todo o poder do Webkit para uma aplicação Qt.
  • 20. Ferramentas • Qt Designer • Qt Creator • QDBusXML2CPP / QDBusCPP2XML
  • 21. Agradecimentos • CIn - UFPE • Igor Andrade • Qt Development Frameworks
  • 22. Dúvidas? Artur de Souza (MoRpHeUz) artur.souza@openbossa.org http://blog.morpheuz.cc http://qtlabs.openbossa.org Freenode #qt-labs #kde-brasil
  • 24. QWidgets - Address Book • Widgets - QPushButton, QLabel, QLineEdit • QLayout • QMessageBox
  • 25. Interfaces com Canvas • QGraphicsScene - A sua cena • QGraphicsView - A sua view • QGraphicsWidget • QGraphicsLayout • Widget customizado • QProxyWidget
  • 26. Animando sua interface • QStateMachine • Animations e Animations Groups • QEasingCurve
  • 27. Web Browser Utilizar os elementos anteriores para criar um navegador • QtWebkit