Desenvolvimento Cross-Platform Com C++ E Qt

Desenvolvimento Cross-Platform Com C++ E Qt

Desenvolvimento Cross-Platform com C++ e Qt Sandro Santos Andrade [email protected] http://liveblue.wordpress.com Objetivos ● Apresentar as principais funcionalidades do Qt 4.6 utilizadas no desenvolvimento produtivo de aplicações cross-platform modernas ● Proporcionar uma vivência prática inicial das soluções mais utilizadas neste toolkit motivando a formação de novos desenvolvedores Qt / KDE ● Discutir decisões de projeto, idiomas e ferramentas auxiliares utilizados no Qt Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 2 Pré-requisitos ● Necessários: ● Fundamentos de Orientação a Objetos (OO) ● Experiência com alguma linguagem OO ● Experiência com desenvolvimento de aplicações visuais ● Desejáveis: ● Fundamentos da linguagem Standard C++ ● Especiais: ● Padrões de projeto, estilos arquiteturais, application frameworks etc Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 3 Metodologia ● Duração: 60 horas ● Tópicos expositivos e laboratórios práticos ● Referências: ● Livros ● Qt Reference Documentation ● Fóruns (QtCentre etc) ● Qt Quarterly Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 4 Metodologia ● Duração: 60 horas ● Tópicos expositivos e laboratórios práticos ● Referências: ● Livros ● Qt Reference Documentation ● Fóruns (QtCentre etc) ● Qt Quarterly Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 5 Sobre o instrutor ● Sandro Andrade – Doutorando pelo DMCC (UFBa) – Nove anos de experiência com desenvolvimento em Qt e treze anos com C++ – Dez anos de experiência em atividades docentes – Desenvolvedor KDE nos projetos KDevelop, Gluon e Plasma. Membro do KDE e.V. – Co-fundador do Live Blue – Grupo de Desenvolvedores KDE da Bahia – Desenvolvedor Qt certificado pela NOKIA Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 6 Visão Geral ● O Qt é um toolkit para desenvolvimento de aplicações cross-platform com recursos para IPC, networking, XML, SVG, banco de dados, scripting, OpenGL, animações, multi-touch, reconhecimento de gestos, multimídia e soluções mobile ● Disponível publicamente desde maio de 1995 ● Possui mais de 800 classes e 9000 funções ● Utilizado em mais de 70 empresas de ponta ● Possui licença dual (LGPL e comercial) Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 7 Histórico dos Toolkits Gráficos ● X11 ● Motif ● Tcl / Tk ● Fltk ● WxWidgets ● MFC / AWT / Swing ● GTK / Qt Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 8 Visão Geral ● Módulos e ferramentas Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 9 Visão Geral ● Widgets Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 10 Visão Geral ● Dialogs e Main Windows Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 11 Visão Geral ● Dialogs e Main Windows Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 12 Visão Geral ● Dialogs e Main Windows Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 13 Visão Geral ● Gráficos 2D Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 14 Visão Geral ● Gráficos 2D Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 15 Visão Geral ● Gráficos 2D Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 16 Visão Geral ● Gráficos 2D Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 17 Visão Geral ● OpenGL Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 18 Visão Geral ● OpenGL Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 19 Visão Geral ● OpenGL Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 20 Visão Geral ● Scripting Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 21 Visão Geral ● Interfaces animadas Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 22 Visão Geral ● Model View Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 23 Visão Geral ● Banco de Dados Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 24 Visão Geral ● Networking Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 25 Visão Geral ● XML Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 26 Visão Geral ● Ferramentas (Qt Designer) Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 27 Visão Geral ● Ferramentas (Qt Linguist) Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 28 Visão Geral ● Ferramentas (Qt Assistant) Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 29 Visão Geral ● Qt Mobile Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 30 Visão Geral ● Qt Mobile Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 31 Visão Geral ● Qt Mobile Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 32 História do Qt ● Primeira versão disponibilizada em 1995, por Haavard Nord e Eirik Chambe-Eng ● Seu desenvolvimento se iniciou em 1991 e em 1993 já existia um núcleo que suportava widgets ● A letra 'Q' foi escolhida porque ela aparecia de forma bonita no editor emacs de Haavard :) ● O “t” vem da palavra toolkit ● Em 1994 foi fundada a Trolltech, antes Troll Tech e ainda antes Quasar Technologies Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 33 História do Qt ● Em 1996 foi lançado o Qt 1.1 e a Trolltech tinha 8 clientes ● Também em 1996 o projeto KDE (na época The K Desktop Environment) foi fundado por Matthias Ettrich ● O 'K' (do KDE) era simplesmente a letra que vinha antes do 'L' (do Linux) :) Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 34 História do Qt ● Em 1997 o Qt passa a ser utilizado no desenvolvimento do KDE e a versão 1.3 é lançada ● Em 1999, o Qt2 passa a ser licenciado pela QPL (Qt Public License) ● Em 2000 é lançado o Qtopia (Qt para ambientes mobile) ● Neste mesmo, o Qt passa a ser licenciado pela GPL (GNU Public License) Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 35 História do Qt ● Em 2001 é lançado o Qt3 ● Em 2005 é lançado o Qt4: primeira versão open-source em todas as plataformas ● Em janeiro de 2008 a Trolltech é comprada pela Nokia (Qt Software → Qt Development Frameworks) Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 36 História do Qt ● Em 2009 o Qt passa a ser liberado sob a licença LGPL e seus repositórios se tornam abertos a contribuições da comunidade (qt.gitorious.org) ● Em 2010 o Qt adota o modelo de Open Governance Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 37 Porque o Qt ? ● Quem usa o Qt ? Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 38 Instalando o Qt 4.6 ● Linux: ● Via compilação dos fontes obtidos em qt.nokia.com ou qt.gitorious.org ● Via binários disponibilizados através de pacotes para a sua distribuição ● Geralmente existem pacotes separados para: – Bibliotecas e headers – Ferramentas (Designer, Linguist e Assistant) – Demos – Documentação – Qt Creator (IDE) Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 39 Instalando o Qt 4.6 ● Windows: ● Fazer o download do Qt SDK para Windows ● Executar o programa de instalação ● O programa de instalação irá fazer o download do MinGW (Minimalist GNU for Windows) ● Pode ser utilizado com o Microsoft Visual C++ ou Eclipse, além do Qt Creator Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 40 Lab1: Hello Qt 1 #include <QApplication> 2 #include <QLabel> 3 4 int main(int argc, char *argv[]) 5 { 6 QApplication app(argc, argv); 7 QLabel *label = new QLabel("Hello Qt!"); 8 label->show(); 9 return app.exec(); 10 } ● Executar: $ qmake -project $ qmake $ make Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 41 Lab1: Hello Qt ● O qmake: ● Ferramenta que automatiza o processo de compilação, linking e instalação em diferentes plataformas ● Realiza a geração automática de Makefiles a partir de arquivos de projeto de fácil criação ● O arquivo de projeto pode ser criado pelo desenvolvedor ou automaticamente pelo qmake (opção -project) ● Os módulos QtCore e QtGui são automaticamente incluídos no processo de linking Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 42 Lab1: Hello Qt ● O qmake: Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 43 Lab1: Hello Qt ● O qmake: ● Arquivo de projeto automaticamente gerado neste exemplo 1 ################################################################### 2 # Automatically generated by qmake (2.01a) qua jul 21 22:43:25 2010 3 ################################################################### 4 5 TEMPLATE = app 6 TARGET = 7 DEPENDPATH += . 8 INCLUDEPATH += . 9 10 # Input 11 SOURCES += main.cpp Desenvolvimento Cross-Platform com C++ e Qt - Sandro Santos Andrade - Live Blue 44 Lab1: Hello Qt ● O qmake - principais configurações: – Controlando a informação de debug: CONFIG += qt [ debug | release | debug_and_release ] – Inclusões dependentes de plataforma: win32 { SOURCES += hellowin.cpp }

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    184 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us