Treinamento Básico Qt
Teoria e Hands on
Anselmo Lacerda Silveira de Melo e Eduardo Madeira Fleury
Setembro/2009, Faculdade iDez - João Pessoa - PB
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 é Anselmo?



  • Formando na UNICAMP - Campinas/Brasil
  • Trabalha com Linux em sistemas embarcados
    desde 2006 (AsGa, WiMobilis)
  • Instituto Nokia de Tecnologia (openBossa stream)
  • Membro do KDE Bugsquad
Quem é Eduardo?



  • Formando na UNICAMP - Campinas/Brasil
  • Trabalha com Linux desde 2006
  • IBM Linux Technology Center
  • Instituto Nokia de Tecnologia
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?



  • Qt Development Frameworks (ex-Trolltech), Nokia
  • Comunidade
  • Você :)

              http://qt.gitorious.org
C++



 • Herança
 • Métodos Virtuais / Polimorfismo
 • Casts
 • Gerenciamento de Memória
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()
Main loop




        O que é Main Loop?
Classes Non-GUI

  • Estruturas de dados: Listas, Hash, etc
  • Strings
  • Streams
  • Multimedia
  • Threads
  • IPC
  • Arquivos
  • Rede
  • Banco de dados
  • XML
GUI




  • Widgets tradicionais vs Widgets em um canvas
  • Animações
  • QML - L. Declarativa (em desenvolvimento)
Layouts




Utilizados para lidar automaticamente com tamanhos
                e posições de widgets.
QtWebkit




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



  • Qt Assistant
  • Qt Designer
  • Qt Creator
  • QDBusXML2CPP / QDBusCPP2XML
  • Qt Linguist
Agradecimentos



  • Faculdade iDez
  • Igor Andrade
  • Artur Duque de Souza (MoRpHeUz)
  • Qt Development Frameworks -
   http://qt.nokia.com
Dúvidas?


     Anselmo L. S. de Melo (anselmolsm)
           anselmo.melo@openbossa.org
            http://www.anselmolsm.org

         Eduardo Madeira Fleury (fleury)
        eduardo.fleury@openbossa.org
        http://www.eduardofleury.com

            http://qtlabs.openbossa.org

           Freenode #qt-labs #kde-brasil
Parte Prática
Signals and Slots




  • Widgets - QDial, QLCDNumber, QProgressBar,
   QSlider
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
Introdução ao Qt
PDF
Introdução ao Qt
PDF
PDF
Jogos em Qt
PDF
Qt Apresentação
PDF
Introdução ao QML
PDF
Qt tchelinux-2010
PDF
Introdução à Programação C++ com Qt 4
Introdução ao Qt
Introdução ao Qt
Jogos em Qt
Qt Apresentação
Introdução ao QML
Qt tchelinux-2010
Introdução à Programação C++ com Qt 4

Mais procurados (20)

PDF
O KDE no mundo
PDF
Desenvolvendo Widgets QML para o KDE Plasma
PDF
Práticas de Agilidade e QA na Comunidade KDE
PDF
QtQuick
PPTX
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
PDF
Meetup-Churrops
ODP
Estaleiro o uso de kubernetes no serpro
ODP
Qgisbrasil 2 anos
PPTX
Kubernetes New Contributors Workshop - Brasil 2022
ODP
Slide PyQt versus Pyside
PDF
Webinar: Qt: um toolkit, um código-fonte, múltiplas plataformas
PPTX
Hospedando projetos Web no Azure: de um site estático a um cluster Kubernetes...
PPTX
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
PPTX
Docker e Kubernetes: Dicas e Truques - Dezembro-2019
PDF
uWSGI.. Por quê? Quando? Onde? Como?
PDF
Palestra caruaru2016
PDF
CRI-O - TDC Floripa 2018
PPTX
Hospedando Aplicações Web no Azure: App Service, Docker e Kubernetes - Azure ...
PDF
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
PPTX
Linux e Docker: novas possibilidades com tecnologias Microsoft - 2o. Stone Te...
O KDE no mundo
Desenvolvendo Widgets QML para o KDE Plasma
Práticas de Agilidade e QA na Comunidade KDE
QtQuick
Linux, Docker, Open Source e Tecnologias Microsoft - Dezembro/2017
Meetup-Churrops
Estaleiro o uso de kubernetes no serpro
Qgisbrasil 2 anos
Kubernetes New Contributors Workshop - Brasil 2022
Slide PyQt versus Pyside
Webinar: Qt: um toolkit, um código-fonte, múltiplas plataformas
Hospedando projetos Web no Azure: de um site estático a um cluster Kubernetes...
Tecnologias Microsoft em Linux: .NET Core, SQL Server e Visual Studio Code - ...
Docker e Kubernetes: Dicas e Truques - Dezembro-2019
uWSGI.. Por quê? Quando? Onde? Como?
Palestra caruaru2016
CRI-O - TDC Floripa 2018
Hospedando Aplicações Web no Azure: App Service, Docker e Kubernetes - Azure ...
O Qt e sua atuação no desenvolvimento desktop, mobile, embarcado e para IoT
Linux e Docker: novas possibilidades com tecnologias Microsoft - 2o. Stone Te...
Anúncio

Destaque (20)

PDF
Dicas de otimização para aplicações Qt
PDF
Big data, e eu com isso?
PDF
Algoritmo de Smith-Waterman
PDF
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
PDF
PySide
PPTX
Arquivos FASTQ
PPTX
Listas, tuplas, conjuntos e dicionários
PPTX
Busca em largura - BFS
PPTX
Algoritmos gulosos
PPTX
Análise Assintótica
PPTX
Programação dinâmica
PPTX
Problema do Caixeiro Viajante
PPTX
Algoritmo de Kosaraju
PPTX
Maratona de Programação com STL
PPTX
Backtracking - Gerar todos os subconjuntos
PDF
Mágica com qt’s meta object system
PPTX
Construção de interfaces gráficas com Tkinter
PPTX
Árvores de Decisão
PPTX
Metaheurística Simulated Annealing
PDF
Apostila ferramentas QT
Dicas de otimização para aplicações Qt
Big data, e eu com isso?
Algoritmo de Smith-Waterman
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
PySide
Arquivos FASTQ
Listas, tuplas, conjuntos e dicionários
Busca em largura - BFS
Algoritmos gulosos
Análise Assintótica
Programação dinâmica
Problema do Caixeiro Viajante
Algoritmo de Kosaraju
Maratona de Programação com STL
Backtracking - Gerar todos os subconjuntos
Mágica com qt’s meta object system
Construção de interfaces gráficas com Tkinter
Árvores de Decisão
Metaheurística Simulated Annealing
Apostila ferramentas QT
Anúncio

Semelhante a Qt Techday - João Pessoa (20)

PDF
A Plataforma Maemo
PDF
KDE Neon & KDE Plasma: venha para o KDE e ganhe experiencia profissional em TI
PDF
Kde para iniciantes - Camila Ayres
PDF
Python - Programando em alto nível
PDF
Carreira de Desenvolvimento
PPTX
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
PPTX
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
PPTX
IoT Usando Azure Como Backend
PDF
Qt: O Seu toolkit para C++/Python com o verdadeiro: Write Once Deploys Everyw...
PDF
Desenvolvendo Aplicações Android com Qt
PPTX
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
PPTX
Por dentro do .NET Core
PPTX
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
PPTX
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
PDF
Negócios e Open Source
PPTX
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
PPTX
Nuvem em 2021: primeiros passos, Azure, tecnologias, carreira - UniFOA | Abri...
PPTX
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
PPTX
Cloud Solutions com o Microsoft Azure - TDC Online Especial BH
PPTX
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...
A Plataforma Maemo
KDE Neon & KDE Plasma: venha para o KDE e ganhe experiencia profissional em TI
Kde para iniciantes - Camila Ayres
Python - Programando em alto nível
Carreira de Desenvolvimento
Tecnologias em 2021: no que ficar de olho? | WTT2021 - Mackenzie
Novidades do .NET Core 2.1 e do ASP.NET Core 2.1
IoT Usando Azure Como Backend
Qt: O Seu toolkit para C++/Python com o verdadeiro: Write Once Deploys Everyw...
Desenvolvendo Aplicações Android com Qt
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Por dentro do .NET Core
Nuvem em 2022: primeiros passos, Azure, tecnologias, carreira | SENAI Santo A...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Negócios e Open Source
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Nuvem em 2021: primeiros passos, Azure, tecnologias, carreira - UniFOA | Abri...
Tecnologias Microsoft, Open Source, Linux, Docker e a Nuvem - WTT-2019 - Mack...
Cloud Solutions com o Microsoft Azure - TDC Online Especial BH
DevOps + Kubernetes: orquestração e deployment automatizado de containers - O...

Mais de OpenBossa (9)

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

Último (12)

PDF
Jira Software projetos completos com scrum
PPTX
Utilizando code blockes por andre backes
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PDF
Manejo integrado de pragas na cultura do algodão
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPT
Conceitos básicos de Redes Neurais Artificiais
PPTX
Analise Estatica de Compiladores para criar uma nova LP
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPTX
Tipos de servidor em redes de computador.pptx
Jira Software projetos completos com scrum
Utilizando code blockes por andre backes
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Manejo integrado de pragas na cultura do algodão
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Conceitos básicos de Redes Neurais Artificiais
Analise Estatica de Compiladores para criar uma nova LP
Viasol Energia Solar -Soluções para geração e economia de energia
Processos no SAP Extended Warehouse Management, EWM100 Col26
Tipos de servidor em redes de computador.pptx

Qt Techday - João Pessoa

  • 1. Treinamento Básico Qt Teoria e Hands on Anselmo Lacerda Silveira de Melo e Eduardo Madeira Fleury Setembro/2009, Faculdade iDez - João Pessoa - PB
  • 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 é Anselmo? • Formando na UNICAMP - Campinas/Brasil • Trabalha com Linux em sistemas embarcados desde 2006 (AsGa, WiMobilis) • Instituto Nokia de Tecnologia (openBossa stream) • Membro do KDE Bugsquad
  • 6. Quem é Eduardo? • Formando na UNICAMP - Campinas/Brasil • Trabalha com Linux desde 2006 • IBM Linux Technology Center • Instituto Nokia de Tecnologia
  • 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? • Qt Development Frameworks (ex-Trolltech), Nokia • Comunidade • Você :) http://qt.gitorious.org
  • 11. C++ • Herança • Métodos Virtuais / Polimorfismo • Casts • Gerenciamento de Memória
  • 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. Main loop O que é Main Loop?
  • 16. Classes Non-GUI • Estruturas de dados: Listas, Hash, etc • Strings • Streams • Multimedia • Threads • IPC • Arquivos • Rede • Banco de dados • XML
  • 17. GUI • Widgets tradicionais vs Widgets em um canvas • Animações • QML - L. Declarativa (em desenvolvimento)
  • 18. Layouts Utilizados para lidar automaticamente com tamanhos e posições de widgets.
  • 19. QtWebkit QtWebkit é um port do webkit para Qt, dando todo o poder do Webkit para uma aplicação Qt.
  • 20. Ferramentas • Qt Assistant • Qt Designer • Qt Creator • QDBusXML2CPP / QDBusCPP2XML • Qt Linguist
  • 21. Agradecimentos • Faculdade iDez • Igor Andrade • Artur Duque de Souza (MoRpHeUz) • Qt Development Frameworks - http://qt.nokia.com
  • 22. Dúvidas? Anselmo L. S. de Melo (anselmolsm) anselmo.melo@openbossa.org http://www.anselmolsm.org Eduardo Madeira Fleury (fleury) eduardo.fleury@openbossa.org http://www.eduardofleury.com http://qtlabs.openbossa.org Freenode #qt-labs #kde-brasil
  • 24. Signals and Slots • Widgets - QDial, QLCDNumber, QProgressBar, QSlider
  • 25. QWidgets - Address Book • Widgets - QPushButton, QLabel, QLineEdit • QLayout • QMessageBox
  • 26. Interfaces com Canvas • QGraphicsScene - A sua cena • QGraphicsView - A sua view • QGraphicsWidget • QGraphicsLayout • Widget customizado • QProxyWidget
  • 27. Animando sua interface • QStateMachine • Animations e Animations Groups • QEasingCurve
  • 28. Web Browser Utilizar os elementos anteriores para criar um navegador • QtWebkit