SlideShare uma empresa Scribd logo
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!

Mais conteúdo relacionado

PDF
Qt Techday - João Pessoa
PDF
Introdução ao Qt
PDF
Introdução ao Qt
PDF
Jogos em Qt
PDF
Qt tchelinux-2010
PDF
Introdução ao QML
PDF
Qt Apresentação
DOCX
Bongekile
Qt Techday - João Pessoa
Introdução ao Qt
Introdução ao Qt
Jogos em Qt
Qt tchelinux-2010
Introdução ao QML
Qt Apresentação
Bongekile

Destaque (16)

PPTX
Творча лабораторія вчителів історії КЗ “НСЗШ №9”
PDF
Il talento e la comfort zone
PDF
Eco cuadernillo actividades_1_bachillerato
ODP
Fragen (Huesca)
PDF
Estudio de diseño - Dink
PPTX
El reino animal
PPT
Các phương pháp thải độc cho cơ thể
DOCX
CHANDER PRAKASH
PDF
Ethydco experience 2
PDF
Tutorial Energia solar 2006
PDF
Ilusiones opticas
PDF
Aparato digestivo
Творча лабораторія вчителів історії КЗ “НСЗШ №9”
Il talento e la comfort zone
Eco cuadernillo actividades_1_bachillerato
Fragen (Huesca)
Estudio de diseño - Dink
El reino animal
Các phương pháp thải độc cho cơ thể
CHANDER PRAKASH
Ethydco experience 2
Tutorial Energia solar 2006
Ilusiones opticas
Aparato digestivo
Anúncio

Semelhante a Qt (20)

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

Mais de OpenBossa (11)

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

Último (16)

PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
COBITxITIL-Entenda as diferença em uso governança TI
Arquitetura de computadores - Memórias Secundárias
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Processos na gestão de transportes, TM100 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...

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