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

Destaque

Творча лабораторія вчителів історії КЗ “НСЗШ №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
Emanuele Castellani
 
Eco cuadernillo actividades_1_bachillerato
Eco cuadernillo actividades_1_bachilleratoEco cuadernillo actividades_1_bachillerato
Eco cuadernillo actividades_1_bachillerato
Leandro Martínez Guadalcázar
 
Fragen (Huesca)
Fragen (Huesca)Fragen (Huesca)
Fragen (Huesca)
Emilio Gil (unjubilado)
 
Estudio de diseño - Dink
Estudio de diseño - DinkEstudio de diseño - Dink
Estudio de diseño - Dink
Dink estudio de diseño
 
Act 11
Act 11 Act 11
El reino animal
El reino animalEl reino animal
El reino animal
Rociiopalomo99
 
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ể
anh toan
 
Cartelera
CarteleraCartelera
CHANDER PRAKASH
CHANDER PRAKASHCHANDER PRAKASH
CHANDER PRAKASH
Chander Prakash Yadav
 
Ethydco experience 2
Ethydco experience 2Ethydco experience 2
Ethydco experience 2Khairy Khalil
 
Tutorial Energia solar 2006
Tutorial Energia solar 2006Tutorial Energia solar 2006
Tutorial Energia solar 2006
Clodomiro Unsihuay Vila
 
Ilusiones opticas
Ilusiones opticasIlusiones opticas
Ilusiones opticas
Emilio Gil (unjubilado)
 
Violación
ViolaciónViolació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
Francisco J. Estrada Vásquez
 
Expo 2008
Expo 2008Expo 2008
Sistema de Responsabilidad Penal Adolescente
Sistema de Responsabilidad Penal AdolescenteSistema de Responsabilidad Penal Adolescente
Sistema de Responsabilidad Penal Adolescente
Francisco J. Estrada Vásquez
 
Aparato digestivo
Aparato digestivoAparato digestivo
Aparato digestivo
Mª Jose Carnota Fernández
 

Destaque (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
 

Semelhante a Qt

A Plataforma Maemo
A Plataforma MaemoA Plataforma Maemo
A Plataforma Maemo
Eduardo Lima
 
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
Embarcados
 
Kde para iniciantes - Camila Ayres
Kde para iniciantes - Camila AyresKde para iniciantes - Camila Ayres
Kde para iniciantes - Camila Ayres
Tchelinux
 
Desenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com QtDesenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com Qt
Sandro Andrade
 
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
Sandro Andrade
 
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
Renato Groff
 
Introdução ao qt
Introdução ao qtIntrodução ao qt
Introdução ao qt
Abraão Állysson
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
Igor Sobreira
 
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 - ...
Renato Groff
 
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
marioaxavier7
 
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...
Renato Groff
 
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
Giovanni Bassi
 
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...
Lays Rodrigues
 
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...
Renato Groff
 
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
Renato Groffe
 
Por dentro do .NET Core
Por dentro do .NET CorePor dentro do .NET Core
Por dentro do .NET Core
Giovanni Bassi
 
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...
Renato Groff
 
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...
Renato Groff
 
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...
Renato Groff
 
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...
Renato Groff
 

Semelhante 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...
 

Mais de OpenBossa

PySide
PySidePySide
PySide
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
 
Intro to QML / Declarative UI
Intro to QML / Declarative UIIntro to QML / Declarative UI
Intro to QML / Declarative UI
OpenBossa
 
Multi View Constructed Right
Multi View Constructed RightMulti View Constructed Right
Multi View Constructed Right
OpenBossa
 
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
OpenBossa
 
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
OpenBossa
 
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?
OpenBossa
 
What's up about Plasma-MID?
What's up about Plasma-MID?What's up about Plasma-MID?
What's up about Plasma-MID?
OpenBossa
 
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
OpenBossa
 
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
OpenBossa
 
Negócios e Open Source
Negócios e Open SourceNegócios e Open Source
Negócios e Open Source
OpenBossa
 

Mais 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

Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
2m Assessoria
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 

Último (10)

Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.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