SlideShare uma empresa Scribd logo
1 de 133
Baixar para ler offline
¸˜ `          ¸˜
 Introducao a Programacao C++ com Qt 4




       ¸˜ `          ¸˜
Introducao a Programacao C++ com Qt 4

                   Antonio Marcio A. Menezes
                       antonio-marcio.menezes@serpro.gov.br



                     ´
                 II Forum de Tecnologia em Software Livre
                      SERPRO - Regional Porto Alegre


                           Outubro de 2009



             Antonio Marcio A. Menezes            ¸˜ `          ¸˜
                                           Introducao a Programacao C++ com Qt 4 (1/112)
¸˜ `          ¸˜
        Introducao a Programacao C++ com Qt 4




Agenda
  1           ´
      Parte Teorica
        Por que C++ e Qt?
        O que preciso para comecar?
                               ¸
  2     ´              ¸˜
      Pratica - Construcao de uma Agenda de Telefones
                          ´
        Roteiro para a Pratica
        Criando o projeto com o Qt Creator
        Trabalhando com Widgets, Layouts, Actions Etc.
        Conectando Signals e Slots
        Acesso a Bancos de Dados
                            ¸˜
        Traduzindo a Aplicacao
                                          ¸˜
        Construindo o instalador da Aplicacao

                    Antonio Marcio A. Menezes          ¸˜ `          ¸˜
                                                Introducao a Programacao C++ com Qt 4 (2/112)
¸˜ `          ¸˜
        Introducao a Programacao C++ com Qt 4




Agenda
  1           ´
      Parte Teorica
        Por que C++ e Qt?
        O que preciso para comecar?
                               ¸
  2     ´              ¸˜
      Pratica - Construcao de uma Agenda de Telefones
                          ´
        Roteiro para a Pratica
        Criando o projeto com o Qt Creator
        Trabalhando com Widgets, Layouts, Actions Etc.
        Conectando Signals e Slots
        Acesso a Bancos de Dados
                            ¸˜
        Traduzindo a Aplicacao
                                          ¸˜
        Construindo o instalador da Aplicacao

                    Antonio Marcio A. Menezes          ¸˜ `          ¸˜
                                                Introducao a Programacao C++ com Qt 4 (2/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Agenda
  1           ´
      Parte Teorica
        Por que C++ e Qt?
        O que preciso para comecar?
                               ¸
  2     ´              ¸˜
      Pratica - Construcao de uma Agenda de Telefones
                          ´
        Roteiro para a Pratica
        Criando o projeto com o Qt Creator
        Trabalhando com Widgets, Layouts, Actions Etc.
        Conectando Signals e Slots
        Acesso a Bancos de Dados
                            ¸˜
        Traduzindo a Aplicacao
                                          ¸˜
        Construindo o instalador da Aplicacao

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (3/112)
´
                                     Parte Teorica
                                                     Por que C++ e Qt?
     ´              ¸˜
   Pratica - Construcao de uma Agenda de Telefones
                                                     O que preciso para comecar?
                                                                            ¸
                                          Resumo




          ´
Qt, o que e isso?
                                      ´
  Qt, muito mais que uma biblioteca, e um framework para desen-
                                        ¸˜
  volvimento multi-plataforma de aplicacoes.

        ´
  Qt esta dispon´vel para as seguintes plataformas:
                ı
        Windows.
        Windows CE.
        Linux/X11.
        Linux Embarcado.
        S60 (Symbian - Em Breve).
        MacOS X.

                        Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                     Introducao a Programacao C++ com Qt 4 (4/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




    ´
Historia do Qt

  O framework Qt comecou a estar dispon´vel publicamente a
                           ¸                    ı
  partir de maio de 1995. Foi criado por Haarvard Nord e Eirik
  Chambe-Eng, fundadores da empresa Trolltech. Desde seu
  in´cio, Qt foi concebido para ser multiplataforma.
    ı

                             ˆ                    ´
  Em marco de 1996, a agencia espacial europeia se tornou o
          ¸
  segundo cliente do Qt. E em setembro deste ano, foi lancada a
                                                           ¸
      ˜
  versao 1.0 do Qt. Ainda neste ano, foi iniciado o projeto KDE,
  desenvolvido com Qt, por Matthias Ettrich. Mais tarde, em 1998,
  Matthias foi contratado pela Trolltech.


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (5/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




    ´
Historia do Qt

  O framework Qt comecou a estar dispon´vel publicamente a
                           ¸                    ı
  partir de maio de 1995. Foi criado por Haarvard Nord e Eirik
  Chambe-Eng, fundadores da empresa Trolltech. Desde seu
  in´cio, Qt foi concebido para ser multiplataforma.
    ı

                             ˆ                    ´
  Em marco de 1996, a agencia espacial europeia se tornou o
          ¸
  segundo cliente do Qt. E em setembro deste ano, foi lancada a
                                                           ¸
      ˜
  versao 1.0 do Qt. Ainda neste ano, foi iniciado o projeto KDE,
  desenvolvido com Qt, por Matthias Ettrich. Mais tarde, em 1998,
  Matthias foi contratado pela Trolltech.


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (5/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




    ´
Historia do Qt


                   ˜                                   ˜
  Em 1999, a versao 2.0 do Qt foi liberada. Uma versao do Qt
  para linux embarcado, por sua vez, foi lancada em 2000.
                                            ¸

                                         ˜
  Em 2001, seguiu-se o lancamento da versao 3.0 do Qt, agora
                          ¸
  dispon´vel para Windows, MacOS X, Unix e Linux (desktop e
        ı
  embarcado).

                           ˜
  Em meados de 2005, a versao Qt 4.0 tornou-se dispon´vel, con-
                                                     ı
                                          ¸˜
  tando com 500 classes e mais de 9000 funcoes.



                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (6/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




    ´
Historia do Qt


                   ˜                                   ˜
  Em 1999, a versao 2.0 do Qt foi liberada. Uma versao do Qt
  para linux embarcado, por sua vez, foi lancada em 2000.
                                            ¸

                                         ˜
  Em 2001, seguiu-se o lancamento da versao 3.0 do Qt, agora
                          ¸
  dispon´vel para Windows, MacOS X, Unix e Linux (desktop e
        ı
  embarcado).

                           ˜
  Em meados de 2005, a versao Qt 4.0 tornou-se dispon´vel, con-
                                                     ı
                                          ¸˜
  tando com 500 classes e mais de 9000 funcoes.



                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (6/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




    ´
Historia do Qt


                   ˜                                   ˜
  Em 1999, a versao 2.0 do Qt foi liberada. Uma versao do Qt
  para linux embarcado, por sua vez, foi lancada em 2000.
                                            ¸

                                         ˜
  Em 2001, seguiu-se o lancamento da versao 3.0 do Qt, agora
                          ¸
  dispon´vel para Windows, MacOS X, Unix e Linux (desktop e
        ı
  embarcado).

                           ˜
  Em meados de 2005, a versao Qt 4.0 tornou-se dispon´vel, con-
                                                     ı
                                          ¸˜
  tando com 500 classes e mais de 9000 funcoes.



                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (6/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




    ´
Historia do Qt


  Em 2008, a empresa Trolltech foi adquirida pela Nokia. Trolltech
        ´
  agora e chamada de Qt Software. Pouco tempo depois, o Qt
  passou a ser lancado sob as licencas GPL, LGPL e comercial.
                  ¸                 ¸

                   ´
  Recentemente, alem de ser fornecido o framework Qt, a em-
                                                  ´
  presa Qt Software passou a fornecer uma IDE amigavel para
                           ¸˜
  desenvolvimento de aplicacoes: o Qt Creator.




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (7/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




    ´
Historia do Qt


  Em 2008, a empresa Trolltech foi adquirida pela Nokia. Trolltech
        ´
  agora e chamada de Qt Software. Pouco tempo depois, o Qt
  passou a ser lancado sob as licencas GPL, LGPL e comercial.
                  ¸                 ¸

                   ´
  Recentemente, alem de ser fornecido o framework Qt, a em-
                                                  ´
  presa Qt Software passou a fornecer uma IDE amigavel para
                           ¸˜
  desenvolvimento de aplicacoes: o Qt Creator.




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (7/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Por que C++ e Qt?

     O que eu ganho em programar com C++ e Qt?
            Desenvolvimento Multiplataforma.
                     ¸˜                 ´
            Programacao C++ mais amigavel com Qt.
            Implemente uma vez. Compile em qualquer lugar.
                  ¸˜        ˜
            Aplicacoes KDE sao feitas com Qt.
                  ¸˜                ´                     ´
            Criacao de interfaces graficas elegantes e amigaveis.
                     ¸˜
            Utilizacao de uma API rica e util.
                                         ´
            Licencas Comercial, LGPL e GPL.
                 ¸


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (8/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Quem usa Qt?

          ¸˜
 Em Aplicacoes Desktop
       Phoenix, um sistema para controle de agendamento e
                ¸˜       ˆ
       monitoracao de voos, desenvolvido pela DFS (empresa de
                 ´
       controle aereo da Alemanha).
       VLC, reprodutor de m´dia.
                           ı
                                    ¸˜                  ´
       Google Earth, para visualizacao de imagens de satelite e
                     ¸˜
       outras informacoes georreferenciadas.
                                   ¸˜
       Skype, ferramenta de comunicao de voz e dados via internet.
                                                     ˆ
       PSI, programa para envio de mensagens instantaneas.


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (9/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Quem usa Qt?

 Em Sistemas Embarcados
    Porta-retrato digital SPF-105V da Samsung.
      ´
    Varios modelos de celulares da Motorola.
       V´deo-fone VP 5500 da Philips.
        ı
       Sony mylo, um comunicador pessoal.
       Telefone Wi-Fi KX-WP1050 para Skype da Panasonic.
       Smartphones 3G da ZTE.
       GPS Naviflash 1020 da Bury.
                               ´
       Reprodutor de m´dia portatil da digitalCube.
                      ı

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (10/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Agenda
  1           ´
      Parte Teorica
        Por que C++ e Qt?
        O que preciso para comecar?
                               ¸
  2     ´              ¸˜
      Pratica - Construcao de uma Agenda de Telefones
                          ´
        Roteiro para a Pratica
        Criando o projeto com o Qt Creator
        Trabalhando com Widgets, Layouts, Actions Etc.
        Conectando Signals e Slots
        Acesso a Bancos de Dados
                            ¸˜
        Traduzindo a Aplicacao
                                          ¸˜
        Construindo o instalador da Aplicacao

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (11/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




O que preciso para comecar?
                       ¸
 Conhecer C ou C++
 Apesar de ser importante um conhecimento mais avancado  ¸
 de C++, para quem programa em Java ou outras linguagens
                          ´
 orientadas a objetos e poss´vel apenas estudar as diferencas
                                 ı                         ¸
     ´            ´
 sintaticas para ja iniciar o aprendizado.

               ´
 Estudar atraves de exemplos
          ¸˜         ´                                  ¸˜
 A instalacao do Qt ja vem com muitos exemplos de aplicacoes
                        ˜                       ´
 uteis. Estes exemplos sao fornecidos com seus codigos.
 ´

                                           ˆ
 Instalar o Qt SDK e consultar outras referencias (apresen-
 tadas ao final deste curso).

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (12/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




       ¸˜
Instalacao
      ´                                     ˆ
 Na pagina http://qt.nokia.com/downloads voce pode fazer o
                 ˜
 download da versao LGPL/Free.

 Clique em “Download Qt SDK for Linux/X11 32-bit (275
 Mb)”.

                ˆ ´                           ¸˜
 Com isto, voce ira obter o arquivo de instalacao (certifique-
                           ˜             ¸˜
 se de conceder permissao de execucao para o mesmo):
 qt-sdk-linux-x86-opensource-2009.03.1.bin.

 ´         ´         ´                  ˜
 E necessario tambem verificar se estao instalados os seguintes
 pacotes: libfreetype6-dev e libgtk2.0-dev.

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (13/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




       ¸˜
Instalacao - Tela 1




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (14/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




       ¸˜
Instalacao - Tela 2




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (15/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




       ¸˜
Instalacao - Tela 3




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (16/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




       ¸˜
Instalacao - Tela 4




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (17/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




       ¸˜
Instalacao - Tela 5




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (18/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




       ¸˜
Instalacao - Tela 6




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (19/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




       ¸˜
Instalacao - Tela 7




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (20/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




       ¸˜
Instalacao - Tela 8




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (21/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




       ¸˜
Instalacao - Resumo
                   ´              ¸˜                ˜
  Ao final, no diretorio de instalacao do Qt SDK, serao encontra-
                             ´
  dos os seguintes subdiretorios:
                  ´      ´                               ´
            bin e o diretorio onde se encontra o executavel do IDE
            Qt Creator.
                                             ´             ¸˜
            lib armazena bibliotecas necessarias a execucao do Qt
            Creator.
                ´
            qt e onde se encontra o framework Qt e suas ferramen-
                                 ´           ´                ´
            tas. Dentro deste, ha outro diretorio bin que contem os
                    ´
            executaveis do framework.
                    ´                  ´
            share e apenas um diretorio de recursos (doc, ima-
            gens etc) utilizados pelo Qt Creator.
                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (22/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Fundamentos

 Um programa em C++ consiste de um ou mais unidades de
        ¸˜                              ¸˜ ´
 compilacao. Cada unidade de compilacao e um arquivo texto
      ´                                      ˜
 de codigo fonte, tipicamente, com uma extensao .cpp (ou .cc ou
 .cxx).

                                 ¸˜                   ´
 Para uma unidade de compilacao, o compilador ira gerar
                               ˜
 um arquivo objeto com a extensao .obj (no Windows) ou .o (no
                                     ´               ´
 Unix ou MACOS X). O arquivo objeto e um arquivo binario com
     ´        ´                                   ´
 o codigo de maquina espec´fico da arquitetura da maquina onde
                          ı
 foi gerado.


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (23/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Fundamentos

 Um programa em C++ consiste de um ou mais unidades de
        ¸˜                              ¸˜ ´
 compilacao. Cada unidade de compilacao e um arquivo texto
      ´                                      ˜
 de codigo fonte, tipicamente, com uma extensao .cpp (ou .cc ou
 .cxx).

                                 ¸˜                   ´
 Para uma unidade de compilacao, o compilador ira gerar
                               ˜
 um arquivo objeto com a extensao .obj (no Windows) ou .o (no
                                     ´               ´
 Unix ou MACOS X). O arquivo objeto e um arquivo binario com
     ´        ´                                   ´
 o codigo de maquina espec´fico da arquitetura da maquina onde
                          ı
 foi gerado.


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (23/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Fundamentos

 Um programa em C++ passa por 6 passos
            ¸˜
       Edicao (com um programa editor de texto, por exemplo).
          ´                      ´               ˜
       Pre-processamento (atraves de diretivas sao realizadas in-
             ˜            ¸˜
       clusoes e substituicoes de textos).
               ¸˜        ¸˜      ´
       Compilacao (geracao do codigo objeto).
            ¸˜                   ´
       Ligacao (“linking” com o codigo das rotinas referenciadas em
       bibliotecas).
                                                         ´
       Carga (carga do programa e bibliotecas na memoria).
            ¸˜                                  ¸˜
       Execucao (sob controle da CPU, uma instrucao por vez).

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (24/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Fundamentos

 Um programa em C++ passa por 6 passos
            ¸˜
       Edicao (com um programa editor de texto, por exemplo).
          ´                      ´               ˜
       Pre-processamento (atraves de diretivas sao realizadas in-
             ˜            ¸˜
       clusoes e substituicoes de textos).
               ¸˜        ¸˜      ´
       Compilacao (geracao do codigo objeto).
            ¸˜                   ´
       Ligacao (“linking” com o codigo das rotinas referenciadas em
       bibliotecas).
                                                         ´
       Carga (carga do programa e bibliotecas na memoria).
            ¸˜                                  ¸˜
       Execucao (sob controle da CPU, uma instrucao por vez).

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (24/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Fundamentos

 Um programa em C++ passa por 6 passos
            ¸˜
       Edicao (com um programa editor de texto, por exemplo).
          ´                      ´               ˜
       Pre-processamento (atraves de diretivas sao realizadas in-
             ˜            ¸˜
       clusoes e substituicoes de textos).
               ¸˜        ¸˜      ´
       Compilacao (geracao do codigo objeto).
            ¸˜                   ´
       Ligacao (“linking” com o codigo das rotinas referenciadas em
       bibliotecas).
                                                         ´
       Carga (carga do programa e bibliotecas na memoria).
            ¸˜                                  ¸˜
       Execucao (sob controle da CPU, uma instrucao por vez).

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (24/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Fundamentos

 Um programa em C++ passa por 6 passos
            ¸˜
       Edicao (com um programa editor de texto, por exemplo).
          ´                      ´               ˜
       Pre-processamento (atraves de diretivas sao realizadas in-
             ˜            ¸˜
       clusoes e substituicoes de textos).
               ¸˜        ¸˜      ´
       Compilacao (geracao do codigo objeto).
            ¸˜                   ´
       Ligacao (“linking” com o codigo das rotinas referenciadas em
       bibliotecas).
                                                         ´
       Carga (carga do programa e bibliotecas na memoria).
            ¸˜                                  ¸˜
       Execucao (sob controle da CPU, uma instrucao por vez).

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (24/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Fundamentos

 Um programa em C++ passa por 6 passos
            ¸˜
       Edicao (com um programa editor de texto, por exemplo).
          ´                      ´               ˜
       Pre-processamento (atraves de diretivas sao realizadas in-
             ˜            ¸˜
       clusoes e substituicoes de textos).
               ¸˜        ¸˜      ´
       Compilacao (geracao do codigo objeto).
            ¸˜                   ´
       Ligacao (“linking” com o codigo das rotinas referenciadas em
       bibliotecas).
                                                         ´
       Carga (carga do programa e bibliotecas na memoria).
            ¸˜                                  ¸˜
       Execucao (sob controle da CPU, uma instrucao por vez).

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (24/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Fundamentos

 Um programa em C++ passa por 6 passos
            ¸˜
       Edicao (com um programa editor de texto, por exemplo).
          ´                      ´               ˜
       Pre-processamento (atraves de diretivas sao realizadas in-
             ˜            ¸˜
       clusoes e substituicoes de textos).
               ¸˜        ¸˜      ´
       Compilacao (geracao do codigo objeto).
            ¸˜                   ´
       Ligacao (“linking” com o codigo das rotinas referenciadas em
       bibliotecas).
                                                         ´
       Carga (carga do programa e bibliotecas na memoria).
            ¸˜                                  ¸˜
       Execucao (sob controle da CPU, uma instrucao por vez).

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (24/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




 ´
Modulos do Qt
      ´                ˜                                ˜
  Os modulos que compoem, atualmente, o framework Qt sao:
  QtCore, QtGui, QtNetwork, QtOpenGL, QtScript, QtSql, QSvg,
  QtWebKit, QtXml, QtXmlPatterns, Phonon, Qt3Support, QtTest,
  QtDBus.




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (25/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Ferramentas do Qt

            ´
  O Qt tambem vem acompanhado de um conjunto de ferramen-
  tas que auxiliam o processo de desenvolvimento.

       Qt Designer para o projeto de telas. Permite testar o projeto
                                                    ´
       de tela sem programar qualquer linha de codigo.
                                                 ¸˜
       Qt Linguist para editar arquivos de traducoes, tornando uma
              ¸˜
       aplicacao com suporte a diferentes l´nguas.
                                             ı
                     ´                         ´
       Qt Assistant e um guia de consulta rapida e sens´vel a con-
                                                          ı
       texto para a API do Qt.
                   ´                  ¸˜                       ¸˜
       Qt Creator e o IDE para a criacao de projetos de aplicacoes.


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (26/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Ferramentas do Qt

            ´
  O Qt tambem vem acompanhado de um conjunto de ferramen-
  tas que auxiliam o processo de desenvolvimento.

       Qt Designer para o projeto de telas. Permite testar o projeto
                                                    ´
       de tela sem programar qualquer linha de codigo.
                                                 ¸˜
       Qt Linguist para editar arquivos de traducoes, tornando uma
              ¸˜
       aplicacao com suporte a diferentes l´nguas.
                                             ı
                     ´                         ´
       Qt Assistant e um guia de consulta rapida e sens´vel a con-
                                                          ı
       texto para a API do Qt.
                   ´                  ¸˜                       ¸˜
       Qt Creator e o IDE para a criacao de projetos de aplicacoes.


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (26/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Ferramentas do Qt

            ´
  O Qt tambem vem acompanhado de um conjunto de ferramen-
  tas que auxiliam o processo de desenvolvimento.

       Qt Designer para o projeto de telas. Permite testar o projeto
                                                    ´
       de tela sem programar qualquer linha de codigo.
                                                 ¸˜
       Qt Linguist para editar arquivos de traducoes, tornando uma
              ¸˜
       aplicacao com suporte a diferentes l´nguas.
                                             ı
                     ´                         ´
       Qt Assistant e um guia de consulta rapida e sens´vel a con-
                                                          ı
       texto para a API do Qt.
                   ´                  ¸˜                       ¸˜
       Qt Creator e o IDE para a criacao de projetos de aplicacoes.


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (26/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




Ferramentas do Qt

            ´
  O Qt tambem vem acompanhado de um conjunto de ferramen-
  tas que auxiliam o processo de desenvolvimento.

       Qt Designer para o projeto de telas. Permite testar o projeto
                                                    ´
       de tela sem programar qualquer linha de codigo.
                                                 ¸˜
       Qt Linguist para editar arquivos de traducoes, tornando uma
              ¸˜
       aplicacao com suporte a diferentes l´nguas.
                                             ı
                     ´                         ´
       Qt Assistant e um guia de consulta rapida e sens´vel a con-
                                                          ı
       texto para a API do Qt.
                   ´                  ¸˜                       ¸˜
       Qt Creator e o IDE para a criacao de projetos de aplicacoes.


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (26/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




                     ¸˜
Minha primeira aplicacao com Qt

 hello.cpp
 #include <QApplication>
 #include <QLabel>
 int main(int argc, char *argv[])
 {
    QApplication app(argc, argv);
                                                    ´
    QLabel *label = new QLabel(QString::fromUtf8(”Ola Qt!”));
    label->show();
    return app.exec();
 }

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (27/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




                     ¸˜
Minha primeira aplicacao com Qt

    ´                ´               ´                   ´
 Apos criar um diretorio hello, sera inclu´do deste diretorio o
                                           ı
                                       ¸˜
 arquivo .cpp da minha primeira aplicacao: hello.cpp

                               ´
 Ao digitar qmake -project, sera criado o arquivo de projeto
 hello.pro

                   ´                                      ´
 qmake hello.pro ira gerar o arquivo Makefile, que orientara a
        ¸˜
 compilacao do projeto.

                     ´                            ´
 Ao digitar make, sera compilado e gerado o executavel da
       ¸˜
 aplicacao.

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (28/112)
´
                                    Parte Teorica
                                                    Por que C++ e Qt?
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones
                                                    O que preciso para comecar?
                                                                           ¸
                                         Resumo




                     ¸˜
Minha primeira aplicacao com Qt




    Figura: No Linux                                   Figura: No Windows




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (29/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Agenda
  1           ´
      Parte Teorica
        Por que C++ e Qt?
        O que preciso para comecar?
                               ¸
  2     ´              ¸˜
      Pratica - Construcao de uma Agenda de Telefones
                          ´
        Roteiro para a Pratica
        Criando o projeto com o Qt Creator
        Trabalhando com Widgets, Layouts, Actions Etc.
        Conectando Signals e Slots
        Acesso a Bancos de Dados
                            ¸˜
        Traduzindo a Aplicacao
                                          ¸˜
        Construindo o instalador da Aplicacao

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (30/112)
´
                                                     Roteiro para a Pratica
                                                     Criando o projeto com o Qt Creator
                                              ´
                                     Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
     ´              ¸˜
   Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                          Resumo     Acesso a Bancos de Dados
                                                                          ¸˜
                                                     Traduzindo a Aplicacao
                                                                                       ¸˜
                                                     Construindo o instalador da Aplicacao


                 ´
Roteiro para a Pratica

                         ˜
  Neste treinamento, serao exercitadas algumas tarefas comuns
  no desenvolvimento de um sistema informatizado. Para agilizar o
                  ˜                ˜                         ¸˜
  treinamento, serao propostas versoes incrementais da aplicacao
  exemplo.

             ˜                        ˜
  Estas versoes incrementais poderao ser enxergadas como
  pontos de controle. Quando um aluno concluir a principal ativi-
                                            ´
  dade de um ponto de controle, ele podera adotar uma versao   ˜
                         ¸˜                     ´
  mais completa da aplicacao e seguir para as proximas tarefas.



                        Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                     Introducao a Programacao C++ com Qt 4 (31/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


                 ´
Roteiro para a Pratica

      ˜                         ¸˜
  Versoes incrementais da aplicacao
                                  ´
       agenda-telefonica1.zip contem o projeto inicial, sem pro-
                                                          ¸˜
       jeto de tela e apenas um arquivo principal de execucao da
             ¸˜
       aplicacao.
                                  ´
       agenda-telefonica2.zip contem o layout inicial da tela princi-
                    ¸˜
       pal da aplicacao.
                                    ´
       agenda-telefonica3.zip contem a barra de ferramentas da
                               ¸˜          ¸˜    ´
       tela principal da aplicacao com as acoes basicas e ´cones.
                                                          ı
                                   ´
       agenda-telefonica4.zip contem o recurso de ativar a
             ¸˜     ´              ¸˜
       aplicacao na area de notificacao.

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (32/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


                 ´
Roteiro para a Pratica

      ˜                         ¸˜
  Versoes incrementais da aplicacao
                                       ´
       agenda-telefonica5.zip inclui codigo para evitar que mais de
                                             ´
       uma agenda seja carregada na memoria ao mesmo tempo.
         ˜                               ˜
       Sao criadas as primeiras conexoes entre signals e slots.
                                     ´                   ´
       agenda-telefonica6.zip contem o primeiro codigo para
                                                 ¸˜
       acesso ao banco de dados e apresentacao dos dados na
       janela principal.
       agenda-telefonica7.zip inclui o projeto das telas de cadastro
       de departamentos e de telefones, e o armazenamento em
       banco de dados.

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (33/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


                 ´
Roteiro para a Pratica


      ˜                         ¸˜
  Versoes incrementais da aplicacao
                                    ´         ¸˜
       agenda-telefonica8.zip contem a aplicacao com suas telas
                             ˆ        ´                    ¸˜
       traduzidas para o ingles e tambem o arquivo de traducao da
             ¸˜                  ˆ
       aplicacao para o portugues.
                                  ´                    ´
       agenda-telefonica9.zip contem os arquivos necessarios da
                                         ¸˜
       agenda para o instalador da aplicacao.
       agenda-telefonica10.zip inclui o projeto do instalador com a
       ferramenta GPL installJammer.



                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (34/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


                    ¸˜
Requisitos da Aplicacao

 Requisitos I
                                              ´
       Cada pessoa cadastrada na agenda devera ser associada a
       um departamento na qual trabalha.
                              ´                    ´
       Todo departamento sera identificado por um codigo, uma
                                                            ˜
       sigla e um nome. Siglas e nomes dos departamentos serao
                ´
       alfanumericos.
                                                                ´
       O cadastro de cada pessoa e seu telefone de contato podera
           ´                                ¸˜
       tambem ser acrescido com a informacao de um numero de
                                                        ´
       ramal.


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (35/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


                    ¸˜
Requisitos da Aplicacao

 Requisitos II
                                    ˜
       Os dados dos cadastros serao armazenados localmente, na
          ´
       maquina onde se executa a agenda.
                                          ´
       A janela principal da agenda devera fornecer uma busca sim-
                                         ´
       plificada dos telefones pelos criterios: nome (ou parte do
       nome) da pessoa e o nome do departamento.
                                               ´
       Inicialmente, a janela principal mostrara a lista de todos os
       telefones, ordenados por nome da pessoa.
               ´                                    ´
       Devera ser exibido na janela principal tambem um contador
       do numero de itens exibidos nesta lista.
             ´

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (36/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


                    ¸˜
Requisitos da Aplicacao


 Requisitos III
              ´
       Devera existir uma janela de busca avancada onde poderao
                                                ¸                ˜
       ser identificadas as pessoas e seus telefones por parte do
       telefone/ramal ou parte do nome do departamento.
       Quando a janela da agenda for fechada, ela devera ficar ´
                                        ´             ¸˜
       ainda ativa, com um ´cone na area de notificacao (System
                              ı
                             ¸˜         ´         ´
       TrayBar). Nesta situacao, o usuario podera clicar sobre este
       ´cone e solicitar que a janela seja novamente exibida.
       ı



                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (37/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


                    ¸˜
Requisitos da Aplicacao

 Requisitos IV
                                          ´
       O cadastro dos departamentos sera feito em uma janela,
                                             ´
       separadamente. Em outra janela, sera feito o cadastro das
       pessoas e seus telefones.
         ˜       ´
       Nao podera ser cadastrado mais de um numero de telefone
                                                ´
       por pessoa.
                             ´
       A empresa que utilizara a agenda de telefones e ramais de-
                                           ´
       seja executar este programa em maquinas com Linux ou
       Windows.


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (38/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


                                    ¸˜
Esboco da Janela Principal da Aplicacao
    ¸




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (39/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


                     ¸˜
Diagrama ER da Aplicacao




                                    ´
       Para fins de simplicidade, sera utilizado o banco Sqlite.




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (40/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


              ¸˜
Script de criacao do banco de dados



         create table DEPARTAMENTOS (
            CODIGO INTEGER NOT NULL
              PRIMARY KEY AUTOINCREMENT,
            NOME VARCHAR(256) NOT NULL UNIQUE,
            SIGLA VARCHAR(30) NULL
         );




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (41/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


              ¸˜
Script de criacao do banco de dados

     create table PESSOAS (
        NOME VARCHAR(80) NOT NULL PRIMARY KEY,
        DEP CODIGO INTEGER NOT NULL
          REFERENCES DEPARTAMENTOS(CODIGO)
          ON DELETE RESTRICT ON UPDATE RESTRICT
          ON INSERT RESTRICT,
        DDD INTEGER,
        TELEFONE INTEGER NOT NULL,
        RAMAL INTEGER
     );


                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (42/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Agenda
  1           ´
      Parte Teorica
        Por que C++ e Qt?
        O que preciso para comecar?
                               ¸
  2     ´              ¸˜
      Pratica - Construcao de uma Agenda de Telefones
                          ´
        Roteiro para a Pratica
        Criando o projeto com o Qt Creator
        Trabalhando com Widgets, Layouts, Actions Etc.
        Conectando Signals e Slots
        Acesso a Bancos de Dados
                            ¸˜
        Traduzindo a Aplicacao
                                          ¸˜
        Construindo o instalador da Aplicacao

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (43/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


                 ¸˜
Exerc´cio de Criacao do Projeto
     ı


         Exerc´cio 01
              ı
             Objetivo: Aprender como criar um projeto de
                    ¸˜
             aplicacao GUI (janela do tipo QMainWindow)
             com o Qt Creator.
                Tempo Estimado: 5 a 8 min.
                Resultado Esperado: Criar todos os arquivos,
                                                 ˜
                como os que foram criados na versao agenda-
                telefonica1.zip.



                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (44/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Definindo o tipo de projeto




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (45/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Definindo o nome do projeto




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (46/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


 ´                   ˜
Modulos do Qt que farao parte do projeto




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (47/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Definindo uma nova classe do tipo QMainWindow




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (48/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


              ¸˜
Resumo da criacao do projeto




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (49/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Tela do Qt Creator com o novo projeto




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (50/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Agenda
  1           ´
      Parte Teorica
        Por que C++ e Qt?
        O que preciso para comecar?
                               ¸
  2     ´              ¸˜
      Pratica - Construcao de uma Agenda de Telefones
                          ´
        Roteiro para a Pratica
        Criando o projeto com o Qt Creator
        Trabalhando com Widgets, Layouts, Actions Etc.
        Conectando Signals e Slots
        Acesso a Bancos de Dados
                            ¸˜
        Traduzindo a Aplicacao
                                          ¸˜
        Construindo o instalador da Aplicacao

                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (51/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Widgets

                             ˜
 Widgets (Window Gadgets) sao componentes que possuem uma
           ¸˜     ´
 representacao grafica no projeto de telas. Com o Qt Designer, o
                                       ´            ´
 desenvolvedor pode criar interfaces graficas de usuario apenas
                        ´
 arrastando e soltando varios widgets sobre a janela que esta ´
 sendo projetada.

  ´             ´
 E poss´vel tambem testar o funcionamento “visual” da janela sob
       ı
          ´
 temas graficos diferentes (Plastique, GTK+, Motif, CleanLooks
 etc).



                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (52/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Exerc´cio com Widgets
     ı


         Exerc´cio 02
              ı
             Objetivo: Aprender a criar projetos de telas com
             componentes visuais.
                Tempo Estimado: 2 a 5 min.
                Resultado Esperado: Adicionar todos os widgets
                       ´
                necessarios para o projeto da janela principal da
                Agenda.



                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (53/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Exerc´cio com Widgets - Esboco da Tela
     ı                      ¸




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (54/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Exerc´cio com Widgets - Atribuindo textos
     ı




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (55/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Exerc´cio com Widgets - Atribuindo textos ao Menu
     ı




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (56/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Atribuindo textos ao Menu (QMenu)



     Ao adicionar itens ao menu principal, automaticamente
        ˜                            ˜                   ´
     serao criadas Actions que poderao ser ligadas a metodos
                              ´ ´
     da janela principal. Tambem e poss´vel definir ´cones para
                                        ı           ı
                               ´       ´
     as Actions, mas para isso e necessario criar um arquivo de
     recursos.




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (57/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Criando um arquivo de recursos




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (58/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Criando um arquivo de recursos




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (59/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Criando um arquivo de recursos




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (60/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Criando um arquivo de recursos




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (61/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Atribuindo um ´cone a uma Action
              ı




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (62/112)
´
                                                    Roteiro para a Pratica
                                                    Criando o projeto com o Qt Creator
                                             ´
                                    Parte Teorica   Trabalhando com Widgets, Layouts, Actions Etc.
    ´              ¸˜
  Pratica - Construcao de uma Agenda de Telefones   Conectando Signals e Slots
                                         Resumo     Acesso a Bancos de Dados
                                                                         ¸˜
                                                    Traduzindo a Aplicacao
                                                                                      ¸˜
                                                    Construindo o instalador da Aplicacao


Atribuindo um ´cone a uma Action
              ı




                       Antonio Marcio A. Menezes           ¸˜ `          ¸˜
                                                    Introducao a Programacao C++ com Qt 4 (63/112)
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4
Introdução à Programação C++ com Qt 4

Mais conteúdo relacionado

Mais procurados

Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016Sandro Andrade
 
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDEPráticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDESandro Andrade
 
Qt Techday - João Pessoa
Qt Techday - João PessoaQt Techday - João Pessoa
Qt Techday - João PessoaOpenBossa
 
Kde para iniciantes - Camila Ayres
Kde para iniciantes - Camila AyresKde para iniciantes - Camila Ayres
Kde para iniciantes - Camila AyresTchelinux
 
TDC2016 - Explorando Qt5 e Python em Linux Embarcado
TDC2016 - Explorando Qt5 e Python em Linux EmbarcadoTDC2016 - Explorando Qt5 e Python em Linux Embarcado
TDC2016 - Explorando Qt5 e Python em Linux EmbarcadoCleiton Bueno
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
Qt tchelinux-2010
Qt tchelinux-2010Qt tchelinux-2010
Qt tchelinux-2010Wagner Reck
 
Games Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDEGames Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDEJogos Digitais, PUC - SP
 
Slide PyQt versus Pyside
Slide PyQt versus PysideSlide PyQt versus Pyside
Slide PyQt versus PysideWill Filho
 
Strider CD - Deploy Contínuo com JavaScript
Strider CD -  Deploy Contínuo com JavaScriptStrider CD -  Deploy Contínuo com JavaScript
Strider CD - Deploy Contínuo com JavaScriptTaller Negócio Digitais
 
TDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuTDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuOdair Bonin Borges
 
ESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no LinuxESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no LinuxJorge Pereira
 
c-gui-programming-with-qt-4-2ndedition -Cap1e2
c-gui-programming-with-qt-4-2ndedition -Cap1e2c-gui-programming-with-qt-4-2ndedition -Cap1e2
c-gui-programming-with-qt-4-2ndedition -Cap1e2Cedemir Pereira
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaGPrimola
 
CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018Jonh Wendell
 
Desafios do Desenvolvimento Multiplataforma
Desafios do Desenvolvimento MultiplataformaDesafios do Desenvolvimento Multiplataforma
Desafios do Desenvolvimento MultiplataformaIntel Software Brasil
 
Desafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataformaDesafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataformaIntel Software Brasil
 

Mais procurados (20)

Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
 
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDEPráticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDE
 
Qt Techday - João Pessoa
Qt Techday - João PessoaQt Techday - João Pessoa
Qt Techday - João Pessoa
 
Introdução ao Qt
Introdução ao QtIntrodução ao Qt
Introdução ao Qt
 
Kde para iniciantes - Camila Ayres
Kde para iniciantes - Camila AyresKde para iniciantes - Camila Ayres
Kde para iniciantes - Camila Ayres
 
TDC2016 - Explorando Qt5 e Python em Linux Embarcado
TDC2016 - Explorando Qt5 e Python em Linux EmbarcadoTDC2016 - Explorando Qt5 e Python em Linux Embarcado
TDC2016 - Explorando Qt5 e Python em Linux Embarcado
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
Qt tchelinux-2010
Qt tchelinux-2010Qt tchelinux-2010
Qt tchelinux-2010
 
Games Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDEGames Open Source: experiências na comunidade KDE
Games Open Source: experiências na comunidade KDE
 
Slide PyQt versus Pyside
Slide PyQt versus PysideSlide PyQt versus Pyside
Slide PyQt versus Pyside
 
Apresentação QtConBr
Apresentação QtConBrApresentação QtConBr
Apresentação QtConBr
 
Strider CD - Deploy Contínuo com JavaScript
Strider CD -  Deploy Contínuo com JavaScriptStrider CD -  Deploy Contínuo com JavaScript
Strider CD - Deploy Contínuo com JavaScript
 
TDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seuTDC2015 - Um drone para chamar de seu
TDC2015 - Um drone para chamar de seu
 
Rqt1
Rqt1Rqt1
Rqt1
 
ESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no LinuxESLPE 2008 - Desenvolvendo aplicações no Linux
ESLPE 2008 - Desenvolvendo aplicações no Linux
 
c-gui-programming-with-qt-4-2ndedition -Cap1e2
c-gui-programming-with-qt-4-2ndedition -Cap1e2c-gui-programming-with-qt-4-2ndedition -Cap1e2
c-gui-programming-with-qt-4-2ndedition -Cap1e2
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno Cotta
 
CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018CRI-O - TDC Floripa 2018
CRI-O - TDC Floripa 2018
 
Desafios do Desenvolvimento Multiplataforma
Desafios do Desenvolvimento MultiplataformaDesafios do Desenvolvimento Multiplataforma
Desafios do Desenvolvimento Multiplataforma
 
Desafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataformaDesafios do Desenvolvimento Multi-plataforma
Desafios do Desenvolvimento Multi-plataforma
 

Destaque

TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++Ellen Diana
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STLMarcos Castro
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Leandro Rezende
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java Manuel Menezes de Sequeira
 
1º seminário - Codificação Turbo - Primeira parte da apresentação.
1º seminário - Codificação Turbo - Primeira parte da apresentação.1º seminário - Codificação Turbo - Primeira parte da apresentação.
1º seminário - Codificação Turbo - Primeira parte da apresentação.Guilherme Varela Barbosa
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas OperativosJoseVieira75
 
Proteção e segurança do Sistema Operacional
Proteção e segurança do Sistema OperacionalProteção e segurança do Sistema Operacional
Proteção e segurança do Sistema OperacionalAmanda Luz
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)Alex Camargo
 
Teoria Geral do Processo Ada Pellegrini 28ª edição 2012
Teoria Geral do Processo Ada Pellegrini 28ª edição 2012Teoria Geral do Processo Ada Pellegrini 28ª edição 2012
Teoria Geral do Processo Ada Pellegrini 28ª edição 2012Paulo Ricardo
 
Apostila de portugues com nova ortografia
Apostila de portugues com nova ortografiaApostila de portugues com nova ortografia
Apostila de portugues com nova ortografiaSalomao Severo da Silva
 
Atm machine using c++
Atm machine using c++Atm machine using c++
Atm machine using c++Aqib Memon
 
A evolução dos Sistemas Operativos, desde os sistemas operativos Consola até ...
A evolução dos Sistemas Operativos, desde os sistemas operativos Consola até ...A evolução dos Sistemas Operativos, desde os sistemas operativos Consola até ...
A evolução dos Sistemas Operativos, desde os sistemas operativos Consola até ...Tudosbinformatica .blogspot.com
 
Ada-pellegrini-grinover-antonio-carlos-de-araujo-cintra-candido-rangel-dinama...
Ada-pellegrini-grinover-antonio-carlos-de-araujo-cintra-candido-rangel-dinama...Ada-pellegrini-grinover-antonio-carlos-de-araujo-cintra-candido-rangel-dinama...
Ada-pellegrini-grinover-antonio-carlos-de-araujo-cintra-candido-rangel-dinama...Bruna Carvalho
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosWesley R. Bezerra
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoMauro Pereira
 

Destaque (20)

TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++TRABALHO PARADIGMAS - C++
TRABALHO PARADIGMAS - C++
 
Estruturas de dados com C++ e STL
Estruturas de dados com C++ e STLEstruturas de dados com C++ e STL
Estruturas de dados com C++ e STL
 
Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01Algoritmos C/C++ - Aula 01
Algoritmos C/C++ - Aula 01
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java
 
1º seminário - Codificação Turbo - Primeira parte da apresentação.
1º seminário - Codificação Turbo - Primeira parte da apresentação.1º seminário - Codificação Turbo - Primeira parte da apresentação.
1º seminário - Codificação Turbo - Primeira parte da apresentação.
 
Sistemas Operativos
Sistemas OperativosSistemas Operativos
Sistemas Operativos
 
Proteção e segurança do Sistema Operacional
Proteção e segurança do Sistema OperacionalProteção e segurança do Sistema Operacional
Proteção e segurança do Sistema Operacional
 
Historia do Brasil
Historia do BrasilHistoria do Brasil
Historia do Brasil
 
Javascript (parte 1)
Javascript (parte 1)Javascript (parte 1)
Javascript (parte 1)
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Teoria Geral do Processo Ada Pellegrini 28ª edição 2012
Teoria Geral do Processo Ada Pellegrini 28ª edição 2012Teoria Geral do Processo Ada Pellegrini 28ª edição 2012
Teoria Geral do Processo Ada Pellegrini 28ª edição 2012
 
Apostila de portugues com nova ortografia
Apostila de portugues com nova ortografiaApostila de portugues com nova ortografia
Apostila de portugues com nova ortografia
 
Questões treinamento
Questões treinamentoQuestões treinamento
Questões treinamento
 
Manual Dev C++
Manual Dev C++Manual Dev C++
Manual Dev C++
 
Atm machine using c++
Atm machine using c++Atm machine using c++
Atm machine using c++
 
A evolução dos Sistemas Operativos, desde os sistemas operativos Consola até ...
A evolução dos Sistemas Operativos, desde os sistemas operativos Consola até ...A evolução dos Sistemas Operativos, desde os sistemas operativos Consola até ...
A evolução dos Sistemas Operativos, desde os sistemas operativos Consola até ...
 
Ada-pellegrini-grinover-antonio-carlos-de-araujo-cintra-candido-rangel-dinama...
Ada-pellegrini-grinover-antonio-carlos-de-araujo-cintra-candido-rangel-dinama...Ada-pellegrini-grinover-antonio-carlos-de-araujo-cintra-candido-rangel-dinama...
Ada-pellegrini-grinover-antonio-carlos-de-araujo-cintra-candido-rangel-dinama...
 
Lógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dadosLógica de Programação - Entrada/saída de dados
Lógica de Programação - Entrada/saída de dados
 
Algoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introduçãoAlgoritmos e lp parte 1-introdução
Algoritmos e lp parte 1-introdução
 
599026
599026599026
599026
 

Semelhante a Introdução à Programação C++ com Qt 4

CV-ESP-Europass-20160112-TavaresTrindade-PT
CV-ESP-Europass-20160112-TavaresTrindade-PTCV-ESP-Europass-20160112-TavaresTrindade-PT
CV-ESP-Europass-20160112-TavaresTrindade-PTCarlos Trindade
 
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 IoTSandro Andrade
 
Python e Dispositivos Móveis
Python e Dispositivos MóveisPython e Dispositivos Móveis
Python e Dispositivos Móveispugpe
 
Maquina de bebidas AC_80_C51
Maquina de bebidas AC_80_C51Maquina de bebidas AC_80_C51
Maquina de bebidas AC_80_C51Vitor Faria
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ....NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...Renato Groff
 
Docker para Desenvolvedores .NET - .NET SP - Abril-2018
Docker para Desenvolvedores .NET - .NET SP - Abril-2018Docker para Desenvolvedores .NET - .NET SP - Abril-2018
Docker para Desenvolvedores .NET - .NET SP - Abril-2018Renato Groff
 
Tekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoTekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoMauricio Magnani Jr
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicaçõesRenato Groff
 
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018Renato Groff
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Renato Groff
 
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfMC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfLuanaBatista74
 
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Renato Groff
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Renato Groff
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Renato Groff
 
Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Denis Santos
 

Semelhante a Introdução à Programação C++ com Qt 4 (20)

Introdução ao qt
Introdução ao qtIntrodução ao qt
Introdução ao qt
 
CV-ESP-Europass-20160112-TavaresTrindade-PT
CV-ESP-Europass-20160112-TavaresTrindade-PTCV-ESP-Europass-20160112-TavaresTrindade-PT
CV-ESP-Europass-20160112-TavaresTrindade-PT
 
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
 
Python e Dispositivos Móveis
Python e Dispositivos MóveisPython e Dispositivos Móveis
Python e Dispositivos Móveis
 
Maquina de bebidas AC_80_C51
Maquina de bebidas AC_80_C51Maquina de bebidas AC_80_C51
Maquina de bebidas AC_80_C51
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ....NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
.NET Core + Docker: containers e seus benefícios no deployment de aplicações ...
 
2 meetup. sprint architecture
2 meetup. sprint architecture2 meetup. sprint architecture
2 meetup. sprint architecture
 
Docker para Desenvolvedores .NET - .NET SP - Abril-2018
Docker para Desenvolvedores .NET - .NET SP - Abril-2018Docker para Desenvolvedores .NET - .NET SP - Abril-2018
Docker para Desenvolvedores .NET - .NET SP - Abril-2018
 
Tekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo ModernoTekton: Pipelines para o Mundo Moderno
Tekton: Pipelines para o Mundo Moderno
 
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações.NET Core + Docker: containers e seus benefícios no deployment de aplicações
.NET Core + Docker: containers e seus benefícios no deployment de aplicações
 
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018
Docker + Bancos de Dados - DBA Brasil 3.0 - Abril-2018
 
felipe_brum-cv
felipe_brum-cvfelipe_brum-cv
felipe_brum-cv
 
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
Docker + Bancos de Dados: descomplicando a montagem de ambientes de Desenvolv...
 
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdfMC-102 — Aula 01 Introdução à Programação de Computadores.pdf
MC-102 — Aula 01 Introdução à Programação de Computadores.pdf
 
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
Docker: introdução e primeiros passos - Sorocódigos - Agosto-2018
 
FabricioDoi
FabricioDoiFabricioDoi
FabricioDoi
 
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
Docker: primeiros passos - Semana FCI - Mackenzie - Outubro-2019
 
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
Docker: Conceitos e Primeiros Passos na utilização de Containers - Programand...
 
Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017Carrefour E-commerce - Multicloud Brasil Day 2017
Carrefour E-commerce - Multicloud Brasil Day 2017
 
Projeto BECI
Projeto BECIProjeto BECI
Projeto BECI
 

Introdução à Programação C++ com Qt 4

  • 1. ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 Antonio Marcio A. Menezes antonio-marcio.menezes@serpro.gov.br ´ II Forum de Tecnologia em Software Livre SERPRO - Regional Porto Alegre Outubro de 2009 Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (1/112)
  • 2. ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 Agenda 1 ´ Parte Teorica Por que C++ e Qt? O que preciso para comecar? ¸ 2 ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones ´ Roteiro para a Pratica Criando o projeto com o Qt Creator Trabalhando com Widgets, Layouts, Actions Etc. Conectando Signals e Slots Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (2/112)
  • 3. ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 Agenda 1 ´ Parte Teorica Por que C++ e Qt? O que preciso para comecar? ¸ 2 ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones ´ Roteiro para a Pratica Criando o projeto com o Qt Creator Trabalhando com Widgets, Layouts, Actions Etc. Conectando Signals e Slots Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (2/112)
  • 4. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Agenda 1 ´ Parte Teorica Por que C++ e Qt? O que preciso para comecar? ¸ 2 ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones ´ Roteiro para a Pratica Criando o projeto com o Qt Creator Trabalhando com Widgets, Layouts, Actions Etc. Conectando Signals e Slots Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (3/112)
  • 5. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ´ Qt, o que e isso? ´ Qt, muito mais que uma biblioteca, e um framework para desen- ¸˜ volvimento multi-plataforma de aplicacoes. ´ Qt esta dispon´vel para as seguintes plataformas: ı Windows. Windows CE. Linux/X11. Linux Embarcado. S60 (Symbian - Em Breve). MacOS X. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (4/112)
  • 6. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ´ Historia do Qt O framework Qt comecou a estar dispon´vel publicamente a ¸ ı partir de maio de 1995. Foi criado por Haarvard Nord e Eirik Chambe-Eng, fundadores da empresa Trolltech. Desde seu in´cio, Qt foi concebido para ser multiplataforma. ı ˆ ´ Em marco de 1996, a agencia espacial europeia se tornou o ¸ segundo cliente do Qt. E em setembro deste ano, foi lancada a ¸ ˜ versao 1.0 do Qt. Ainda neste ano, foi iniciado o projeto KDE, desenvolvido com Qt, por Matthias Ettrich. Mais tarde, em 1998, Matthias foi contratado pela Trolltech. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (5/112)
  • 7. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ´ Historia do Qt O framework Qt comecou a estar dispon´vel publicamente a ¸ ı partir de maio de 1995. Foi criado por Haarvard Nord e Eirik Chambe-Eng, fundadores da empresa Trolltech. Desde seu in´cio, Qt foi concebido para ser multiplataforma. ı ˆ ´ Em marco de 1996, a agencia espacial europeia se tornou o ¸ segundo cliente do Qt. E em setembro deste ano, foi lancada a ¸ ˜ versao 1.0 do Qt. Ainda neste ano, foi iniciado o projeto KDE, desenvolvido com Qt, por Matthias Ettrich. Mais tarde, em 1998, Matthias foi contratado pela Trolltech. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (5/112)
  • 8. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ´ Historia do Qt ˜ ˜ Em 1999, a versao 2.0 do Qt foi liberada. Uma versao do Qt para linux embarcado, por sua vez, foi lancada em 2000. ¸ ˜ Em 2001, seguiu-se o lancamento da versao 3.0 do Qt, agora ¸ dispon´vel para Windows, MacOS X, Unix e Linux (desktop e ı embarcado). ˜ Em meados de 2005, a versao Qt 4.0 tornou-se dispon´vel, con- ı ¸˜ tando com 500 classes e mais de 9000 funcoes. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (6/112)
  • 9. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ´ Historia do Qt ˜ ˜ Em 1999, a versao 2.0 do Qt foi liberada. Uma versao do Qt para linux embarcado, por sua vez, foi lancada em 2000. ¸ ˜ Em 2001, seguiu-se o lancamento da versao 3.0 do Qt, agora ¸ dispon´vel para Windows, MacOS X, Unix e Linux (desktop e ı embarcado). ˜ Em meados de 2005, a versao Qt 4.0 tornou-se dispon´vel, con- ı ¸˜ tando com 500 classes e mais de 9000 funcoes. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (6/112)
  • 10. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ´ Historia do Qt ˜ ˜ Em 1999, a versao 2.0 do Qt foi liberada. Uma versao do Qt para linux embarcado, por sua vez, foi lancada em 2000. ¸ ˜ Em 2001, seguiu-se o lancamento da versao 3.0 do Qt, agora ¸ dispon´vel para Windows, MacOS X, Unix e Linux (desktop e ı embarcado). ˜ Em meados de 2005, a versao Qt 4.0 tornou-se dispon´vel, con- ı ¸˜ tando com 500 classes e mais de 9000 funcoes. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (6/112)
  • 11. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ´ Historia do Qt Em 2008, a empresa Trolltech foi adquirida pela Nokia. Trolltech ´ agora e chamada de Qt Software. Pouco tempo depois, o Qt passou a ser lancado sob as licencas GPL, LGPL e comercial. ¸ ¸ ´ Recentemente, alem de ser fornecido o framework Qt, a em- ´ presa Qt Software passou a fornecer uma IDE amigavel para ¸˜ desenvolvimento de aplicacoes: o Qt Creator. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (7/112)
  • 12. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ´ Historia do Qt Em 2008, a empresa Trolltech foi adquirida pela Nokia. Trolltech ´ agora e chamada de Qt Software. Pouco tempo depois, o Qt passou a ser lancado sob as licencas GPL, LGPL e comercial. ¸ ¸ ´ Recentemente, alem de ser fornecido o framework Qt, a em- ´ presa Qt Software passou a fornecer uma IDE amigavel para ¸˜ desenvolvimento de aplicacoes: o Qt Creator. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (7/112)
  • 13. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Por que C++ e Qt? O que eu ganho em programar com C++ e Qt? Desenvolvimento Multiplataforma. ¸˜ ´ Programacao C++ mais amigavel com Qt. Implemente uma vez. Compile em qualquer lugar. ¸˜ ˜ Aplicacoes KDE sao feitas com Qt. ¸˜ ´ ´ Criacao de interfaces graficas elegantes e amigaveis. ¸˜ Utilizacao de uma API rica e util. ´ Licencas Comercial, LGPL e GPL. ¸ Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (8/112)
  • 14. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Quem usa Qt? ¸˜ Em Aplicacoes Desktop Phoenix, um sistema para controle de agendamento e ¸˜ ˆ monitoracao de voos, desenvolvido pela DFS (empresa de ´ controle aereo da Alemanha). VLC, reprodutor de m´dia. ı ¸˜ ´ Google Earth, para visualizacao de imagens de satelite e ¸˜ outras informacoes georreferenciadas. ¸˜ Skype, ferramenta de comunicao de voz e dados via internet. ˆ PSI, programa para envio de mensagens instantaneas. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (9/112)
  • 15. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Quem usa Qt? Em Sistemas Embarcados Porta-retrato digital SPF-105V da Samsung. ´ Varios modelos de celulares da Motorola. V´deo-fone VP 5500 da Philips. ı Sony mylo, um comunicador pessoal. Telefone Wi-Fi KX-WP1050 para Skype da Panasonic. Smartphones 3G da ZTE. GPS Naviflash 1020 da Bury. ´ Reprodutor de m´dia portatil da digitalCube. ı Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (10/112)
  • 16. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Agenda 1 ´ Parte Teorica Por que C++ e Qt? O que preciso para comecar? ¸ 2 ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones ´ Roteiro para a Pratica Criando o projeto com o Qt Creator Trabalhando com Widgets, Layouts, Actions Etc. Conectando Signals e Slots Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (11/112)
  • 17. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo O que preciso para comecar? ¸ Conhecer C ou C++ Apesar de ser importante um conhecimento mais avancado ¸ de C++, para quem programa em Java ou outras linguagens ´ orientadas a objetos e poss´vel apenas estudar as diferencas ı ¸ ´ ´ sintaticas para ja iniciar o aprendizado. ´ Estudar atraves de exemplos ¸˜ ´ ¸˜ A instalacao do Qt ja vem com muitos exemplos de aplicacoes ˜ ´ uteis. Estes exemplos sao fornecidos com seus codigos. ´ ˆ Instalar o Qt SDK e consultar outras referencias (apresen- tadas ao final deste curso). Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (12/112)
  • 18. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Instalacao ´ ˆ Na pagina http://qt.nokia.com/downloads voce pode fazer o ˜ download da versao LGPL/Free. Clique em “Download Qt SDK for Linux/X11 32-bit (275 Mb)”. ˆ ´ ¸˜ Com isto, voce ira obter o arquivo de instalacao (certifique- ˜ ¸˜ se de conceder permissao de execucao para o mesmo): qt-sdk-linux-x86-opensource-2009.03.1.bin. ´ ´ ´ ˜ E necessario tambem verificar se estao instalados os seguintes pacotes: libfreetype6-dev e libgtk2.0-dev. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (13/112)
  • 19. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Instalacao - Tela 1 Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (14/112)
  • 20. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Instalacao - Tela 2 Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (15/112)
  • 21. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Instalacao - Tela 3 Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (16/112)
  • 22. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Instalacao - Tela 4 Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (17/112)
  • 23. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Instalacao - Tela 5 Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (18/112)
  • 24. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Instalacao - Tela 6 Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (19/112)
  • 25. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Instalacao - Tela 7 Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (20/112)
  • 26. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Instalacao - Tela 8 Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (21/112)
  • 27. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Instalacao - Resumo ´ ¸˜ ˜ Ao final, no diretorio de instalacao do Qt SDK, serao encontra- ´ dos os seguintes subdiretorios: ´ ´ ´ bin e o diretorio onde se encontra o executavel do IDE Qt Creator. ´ ¸˜ lib armazena bibliotecas necessarias a execucao do Qt Creator. ´ qt e onde se encontra o framework Qt e suas ferramen- ´ ´ ´ tas. Dentro deste, ha outro diretorio bin que contem os ´ executaveis do framework. ´ ´ share e apenas um diretorio de recursos (doc, ima- gens etc) utilizados pelo Qt Creator. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (22/112)
  • 28. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Fundamentos Um programa em C++ consiste de um ou mais unidades de ¸˜ ¸˜ ´ compilacao. Cada unidade de compilacao e um arquivo texto ´ ˜ de codigo fonte, tipicamente, com uma extensao .cpp (ou .cc ou .cxx). ¸˜ ´ Para uma unidade de compilacao, o compilador ira gerar ˜ um arquivo objeto com a extensao .obj (no Windows) ou .o (no ´ ´ Unix ou MACOS X). O arquivo objeto e um arquivo binario com ´ ´ ´ o codigo de maquina espec´fico da arquitetura da maquina onde ı foi gerado. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (23/112)
  • 29. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Fundamentos Um programa em C++ consiste de um ou mais unidades de ¸˜ ¸˜ ´ compilacao. Cada unidade de compilacao e um arquivo texto ´ ˜ de codigo fonte, tipicamente, com uma extensao .cpp (ou .cc ou .cxx). ¸˜ ´ Para uma unidade de compilacao, o compilador ira gerar ˜ um arquivo objeto com a extensao .obj (no Windows) ou .o (no ´ ´ Unix ou MACOS X). O arquivo objeto e um arquivo binario com ´ ´ ´ o codigo de maquina espec´fico da arquitetura da maquina onde ı foi gerado. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (23/112)
  • 30. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Fundamentos Um programa em C++ passa por 6 passos ¸˜ Edicao (com um programa editor de texto, por exemplo). ´ ´ ˜ Pre-processamento (atraves de diretivas sao realizadas in- ˜ ¸˜ clusoes e substituicoes de textos). ¸˜ ¸˜ ´ Compilacao (geracao do codigo objeto). ¸˜ ´ Ligacao (“linking” com o codigo das rotinas referenciadas em bibliotecas). ´ Carga (carga do programa e bibliotecas na memoria). ¸˜ ¸˜ Execucao (sob controle da CPU, uma instrucao por vez). Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (24/112)
  • 31. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Fundamentos Um programa em C++ passa por 6 passos ¸˜ Edicao (com um programa editor de texto, por exemplo). ´ ´ ˜ Pre-processamento (atraves de diretivas sao realizadas in- ˜ ¸˜ clusoes e substituicoes de textos). ¸˜ ¸˜ ´ Compilacao (geracao do codigo objeto). ¸˜ ´ Ligacao (“linking” com o codigo das rotinas referenciadas em bibliotecas). ´ Carga (carga do programa e bibliotecas na memoria). ¸˜ ¸˜ Execucao (sob controle da CPU, uma instrucao por vez). Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (24/112)
  • 32. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Fundamentos Um programa em C++ passa por 6 passos ¸˜ Edicao (com um programa editor de texto, por exemplo). ´ ´ ˜ Pre-processamento (atraves de diretivas sao realizadas in- ˜ ¸˜ clusoes e substituicoes de textos). ¸˜ ¸˜ ´ Compilacao (geracao do codigo objeto). ¸˜ ´ Ligacao (“linking” com o codigo das rotinas referenciadas em bibliotecas). ´ Carga (carga do programa e bibliotecas na memoria). ¸˜ ¸˜ Execucao (sob controle da CPU, uma instrucao por vez). Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (24/112)
  • 33. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Fundamentos Um programa em C++ passa por 6 passos ¸˜ Edicao (com um programa editor de texto, por exemplo). ´ ´ ˜ Pre-processamento (atraves de diretivas sao realizadas in- ˜ ¸˜ clusoes e substituicoes de textos). ¸˜ ¸˜ ´ Compilacao (geracao do codigo objeto). ¸˜ ´ Ligacao (“linking” com o codigo das rotinas referenciadas em bibliotecas). ´ Carga (carga do programa e bibliotecas na memoria). ¸˜ ¸˜ Execucao (sob controle da CPU, uma instrucao por vez). Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (24/112)
  • 34. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Fundamentos Um programa em C++ passa por 6 passos ¸˜ Edicao (com um programa editor de texto, por exemplo). ´ ´ ˜ Pre-processamento (atraves de diretivas sao realizadas in- ˜ ¸˜ clusoes e substituicoes de textos). ¸˜ ¸˜ ´ Compilacao (geracao do codigo objeto). ¸˜ ´ Ligacao (“linking” com o codigo das rotinas referenciadas em bibliotecas). ´ Carga (carga do programa e bibliotecas na memoria). ¸˜ ¸˜ Execucao (sob controle da CPU, uma instrucao por vez). Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (24/112)
  • 35. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Fundamentos Um programa em C++ passa por 6 passos ¸˜ Edicao (com um programa editor de texto, por exemplo). ´ ´ ˜ Pre-processamento (atraves de diretivas sao realizadas in- ˜ ¸˜ clusoes e substituicoes de textos). ¸˜ ¸˜ ´ Compilacao (geracao do codigo objeto). ¸˜ ´ Ligacao (“linking” com o codigo das rotinas referenciadas em bibliotecas). ´ Carga (carga do programa e bibliotecas na memoria). ¸˜ ¸˜ Execucao (sob controle da CPU, uma instrucao por vez). Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (24/112)
  • 36. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ´ Modulos do Qt ´ ˜ ˜ Os modulos que compoem, atualmente, o framework Qt sao: QtCore, QtGui, QtNetwork, QtOpenGL, QtScript, QtSql, QSvg, QtWebKit, QtXml, QtXmlPatterns, Phonon, Qt3Support, QtTest, QtDBus. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (25/112)
  • 37. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Ferramentas do Qt ´ O Qt tambem vem acompanhado de um conjunto de ferramen- tas que auxiliam o processo de desenvolvimento. Qt Designer para o projeto de telas. Permite testar o projeto ´ de tela sem programar qualquer linha de codigo. ¸˜ Qt Linguist para editar arquivos de traducoes, tornando uma ¸˜ aplicacao com suporte a diferentes l´nguas. ı ´ ´ Qt Assistant e um guia de consulta rapida e sens´vel a con- ı texto para a API do Qt. ´ ¸˜ ¸˜ Qt Creator e o IDE para a criacao de projetos de aplicacoes. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (26/112)
  • 38. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Ferramentas do Qt ´ O Qt tambem vem acompanhado de um conjunto de ferramen- tas que auxiliam o processo de desenvolvimento. Qt Designer para o projeto de telas. Permite testar o projeto ´ de tela sem programar qualquer linha de codigo. ¸˜ Qt Linguist para editar arquivos de traducoes, tornando uma ¸˜ aplicacao com suporte a diferentes l´nguas. ı ´ ´ Qt Assistant e um guia de consulta rapida e sens´vel a con- ı texto para a API do Qt. ´ ¸˜ ¸˜ Qt Creator e o IDE para a criacao de projetos de aplicacoes. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (26/112)
  • 39. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Ferramentas do Qt ´ O Qt tambem vem acompanhado de um conjunto de ferramen- tas que auxiliam o processo de desenvolvimento. Qt Designer para o projeto de telas. Permite testar o projeto ´ de tela sem programar qualquer linha de codigo. ¸˜ Qt Linguist para editar arquivos de traducoes, tornando uma ¸˜ aplicacao com suporte a diferentes l´nguas. ı ´ ´ Qt Assistant e um guia de consulta rapida e sens´vel a con- ı texto para a API do Qt. ´ ¸˜ ¸˜ Qt Creator e o IDE para a criacao de projetos de aplicacoes. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (26/112)
  • 40. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo Ferramentas do Qt ´ O Qt tambem vem acompanhado de um conjunto de ferramen- tas que auxiliam o processo de desenvolvimento. Qt Designer para o projeto de telas. Permite testar o projeto ´ de tela sem programar qualquer linha de codigo. ¸˜ Qt Linguist para editar arquivos de traducoes, tornando uma ¸˜ aplicacao com suporte a diferentes l´nguas. ı ´ ´ Qt Assistant e um guia de consulta rapida e sens´vel a con- ı texto para a API do Qt. ´ ¸˜ ¸˜ Qt Creator e o IDE para a criacao de projetos de aplicacoes. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (26/112)
  • 41. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Minha primeira aplicacao com Qt hello.cpp #include <QApplication> #include <QLabel> int main(int argc, char *argv[]) { QApplication app(argc, argv); ´ QLabel *label = new QLabel(QString::fromUtf8(”Ola Qt!”)); label->show(); return app.exec(); } Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (27/112)
  • 42. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Minha primeira aplicacao com Qt ´ ´ ´ ´ Apos criar um diretorio hello, sera inclu´do deste diretorio o ı ¸˜ arquivo .cpp da minha primeira aplicacao: hello.cpp ´ Ao digitar qmake -project, sera criado o arquivo de projeto hello.pro ´ ´ qmake hello.pro ira gerar o arquivo Makefile, que orientara a ¸˜ compilacao do projeto. ´ ´ Ao digitar make, sera compilado e gerado o executavel da ¸˜ aplicacao. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (28/112)
  • 43. ´ Parte Teorica Por que C++ e Qt? ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones O que preciso para comecar? ¸ Resumo ¸˜ Minha primeira aplicacao com Qt Figura: No Linux Figura: No Windows Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (29/112)
  • 44. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Agenda 1 ´ Parte Teorica Por que C++ e Qt? O que preciso para comecar? ¸ 2 ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones ´ Roteiro para a Pratica Criando o projeto com o Qt Creator Trabalhando com Widgets, Layouts, Actions Etc. Conectando Signals e Slots Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (30/112)
  • 45. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ´ Roteiro para a Pratica ˜ Neste treinamento, serao exercitadas algumas tarefas comuns no desenvolvimento de um sistema informatizado. Para agilizar o ˜ ˜ ¸˜ treinamento, serao propostas versoes incrementais da aplicacao exemplo. ˜ ˜ Estas versoes incrementais poderao ser enxergadas como pontos de controle. Quando um aluno concluir a principal ativi- ´ dade de um ponto de controle, ele podera adotar uma versao ˜ ¸˜ ´ mais completa da aplicacao e seguir para as proximas tarefas. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (31/112)
  • 46. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ´ Roteiro para a Pratica ˜ ¸˜ Versoes incrementais da aplicacao ´ agenda-telefonica1.zip contem o projeto inicial, sem pro- ¸˜ jeto de tela e apenas um arquivo principal de execucao da ¸˜ aplicacao. ´ agenda-telefonica2.zip contem o layout inicial da tela princi- ¸˜ pal da aplicacao. ´ agenda-telefonica3.zip contem a barra de ferramentas da ¸˜ ¸˜ ´ tela principal da aplicacao com as acoes basicas e ´cones. ı ´ agenda-telefonica4.zip contem o recurso de ativar a ¸˜ ´ ¸˜ aplicacao na area de notificacao. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (32/112)
  • 47. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ´ Roteiro para a Pratica ˜ ¸˜ Versoes incrementais da aplicacao ´ agenda-telefonica5.zip inclui codigo para evitar que mais de ´ uma agenda seja carregada na memoria ao mesmo tempo. ˜ ˜ Sao criadas as primeiras conexoes entre signals e slots. ´ ´ agenda-telefonica6.zip contem o primeiro codigo para ¸˜ acesso ao banco de dados e apresentacao dos dados na janela principal. agenda-telefonica7.zip inclui o projeto das telas de cadastro de departamentos e de telefones, e o armazenamento em banco de dados. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (33/112)
  • 48. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ´ Roteiro para a Pratica ˜ ¸˜ Versoes incrementais da aplicacao ´ ¸˜ agenda-telefonica8.zip contem a aplicacao com suas telas ˆ ´ ¸˜ traduzidas para o ingles e tambem o arquivo de traducao da ¸˜ ˆ aplicacao para o portugues. ´ ´ agenda-telefonica9.zip contem os arquivos necessarios da ¸˜ agenda para o instalador da aplicacao. agenda-telefonica10.zip inclui o projeto do instalador com a ferramenta GPL installJammer. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (34/112)
  • 49. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ¸˜ Requisitos da Aplicacao Requisitos I ´ Cada pessoa cadastrada na agenda devera ser associada a um departamento na qual trabalha. ´ ´ Todo departamento sera identificado por um codigo, uma ˜ sigla e um nome. Siglas e nomes dos departamentos serao ´ alfanumericos. ´ O cadastro de cada pessoa e seu telefone de contato podera ´ ¸˜ tambem ser acrescido com a informacao de um numero de ´ ramal. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (35/112)
  • 50. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ¸˜ Requisitos da Aplicacao Requisitos II ˜ Os dados dos cadastros serao armazenados localmente, na ´ maquina onde se executa a agenda. ´ A janela principal da agenda devera fornecer uma busca sim- ´ plificada dos telefones pelos criterios: nome (ou parte do nome) da pessoa e o nome do departamento. ´ Inicialmente, a janela principal mostrara a lista de todos os telefones, ordenados por nome da pessoa. ´ ´ Devera ser exibido na janela principal tambem um contador do numero de itens exibidos nesta lista. ´ Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (36/112)
  • 51. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ¸˜ Requisitos da Aplicacao Requisitos III ´ Devera existir uma janela de busca avancada onde poderao ¸ ˜ ser identificadas as pessoas e seus telefones por parte do telefone/ramal ou parte do nome do departamento. Quando a janela da agenda for fechada, ela devera ficar ´ ´ ¸˜ ainda ativa, com um ´cone na area de notificacao (System ı ¸˜ ´ ´ TrayBar). Nesta situacao, o usuario podera clicar sobre este ´cone e solicitar que a janela seja novamente exibida. ı Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (37/112)
  • 52. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ¸˜ Requisitos da Aplicacao Requisitos IV ´ O cadastro dos departamentos sera feito em uma janela, ´ separadamente. Em outra janela, sera feito o cadastro das pessoas e seus telefones. ˜ ´ Nao podera ser cadastrado mais de um numero de telefone ´ por pessoa. ´ A empresa que utilizara a agenda de telefones e ramais de- ´ seja executar este programa em maquinas com Linux ou Windows. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (38/112)
  • 53. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ¸˜ Esboco da Janela Principal da Aplicacao ¸ Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (39/112)
  • 54. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ¸˜ Diagrama ER da Aplicacao ´ Para fins de simplicidade, sera utilizado o banco Sqlite. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (40/112)
  • 55. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ¸˜ Script de criacao do banco de dados create table DEPARTAMENTOS ( CODIGO INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, NOME VARCHAR(256) NOT NULL UNIQUE, SIGLA VARCHAR(30) NULL ); Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (41/112)
  • 56. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ¸˜ Script de criacao do banco de dados create table PESSOAS ( NOME VARCHAR(80) NOT NULL PRIMARY KEY, DEP CODIGO INTEGER NOT NULL REFERENCES DEPARTAMENTOS(CODIGO) ON DELETE RESTRICT ON UPDATE RESTRICT ON INSERT RESTRICT, DDD INTEGER, TELEFONE INTEGER NOT NULL, RAMAL INTEGER ); Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (42/112)
  • 57. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Agenda 1 ´ Parte Teorica Por que C++ e Qt? O que preciso para comecar? ¸ 2 ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones ´ Roteiro para a Pratica Criando o projeto com o Qt Creator Trabalhando com Widgets, Layouts, Actions Etc. Conectando Signals e Slots Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (43/112)
  • 58. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ¸˜ Exerc´cio de Criacao do Projeto ı Exerc´cio 01 ı Objetivo: Aprender como criar um projeto de ¸˜ aplicacao GUI (janela do tipo QMainWindow) com o Qt Creator. Tempo Estimado: 5 a 8 min. Resultado Esperado: Criar todos os arquivos, ˜ como os que foram criados na versao agenda- telefonica1.zip. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (44/112)
  • 59. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Definindo o tipo de projeto Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (45/112)
  • 60. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Definindo o nome do projeto Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (46/112)
  • 61. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ´ ˜ Modulos do Qt que farao parte do projeto Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (47/112)
  • 62. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Definindo uma nova classe do tipo QMainWindow Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (48/112)
  • 63. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao ¸˜ Resumo da criacao do projeto Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (49/112)
  • 64. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Tela do Qt Creator com o novo projeto Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (50/112)
  • 65. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Agenda 1 ´ Parte Teorica Por que C++ e Qt? O que preciso para comecar? ¸ 2 ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones ´ Roteiro para a Pratica Criando o projeto com o Qt Creator Trabalhando com Widgets, Layouts, Actions Etc. Conectando Signals e Slots Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (51/112)
  • 66. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Widgets ˜ Widgets (Window Gadgets) sao componentes que possuem uma ¸˜ ´ representacao grafica no projeto de telas. Com o Qt Designer, o ´ ´ desenvolvedor pode criar interfaces graficas de usuario apenas ´ arrastando e soltando varios widgets sobre a janela que esta ´ sendo projetada. ´ ´ E poss´vel tambem testar o funcionamento “visual” da janela sob ı ´ temas graficos diferentes (Plastique, GTK+, Motif, CleanLooks etc). Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (52/112)
  • 67. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Exerc´cio com Widgets ı Exerc´cio 02 ı Objetivo: Aprender a criar projetos de telas com componentes visuais. Tempo Estimado: 2 a 5 min. Resultado Esperado: Adicionar todos os widgets ´ necessarios para o projeto da janela principal da Agenda. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (53/112)
  • 68. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Exerc´cio com Widgets - Esboco da Tela ı ¸ Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (54/112)
  • 69. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Exerc´cio com Widgets - Atribuindo textos ı Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (55/112)
  • 70. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Exerc´cio com Widgets - Atribuindo textos ao Menu ı Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (56/112)
  • 71. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Atribuindo textos ao Menu (QMenu) Ao adicionar itens ao menu principal, automaticamente ˜ ˜ ´ serao criadas Actions que poderao ser ligadas a metodos ´ ´ da janela principal. Tambem e poss´vel definir ´cones para ı ı ´ ´ as Actions, mas para isso e necessario criar um arquivo de recursos. Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (57/112)
  • 72. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Criando um arquivo de recursos Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (58/112)
  • 73. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Criando um arquivo de recursos Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (59/112)
  • 74. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Criando um arquivo de recursos Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (60/112)
  • 75. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Criando um arquivo de recursos Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (61/112)
  • 76. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Atribuindo um ´cone a uma Action ı Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (62/112)
  • 77. ´ Roteiro para a Pratica Criando o projeto com o Qt Creator ´ Parte Teorica Trabalhando com Widgets, Layouts, Actions Etc. ´ ¸˜ Pratica - Construcao de uma Agenda de Telefones Conectando Signals e Slots Resumo Acesso a Bancos de Dados ¸˜ Traduzindo a Aplicacao ¸˜ Construindo o instalador da Aplicacao Atribuindo um ´cone a uma Action ı Antonio Marcio A. Menezes ¸˜ ` ¸˜ Introducao a Programacao C++ com Qt 4 (63/112)