O que é Qt ?
              Como começar?
                Programando
                    Futuro...




Desenvolvimento orientado a objetos com C++ e
                      Qt4
                 Dr. Henrique Marks


                  November 8, 2008




           Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                         Como começar?
                           Programando
                               Futuro...
Sumário
  1   O que é Qt ?

  2   Como começar?

  3   Programando

  4   Futuro...

       Nível Intermediário
       Programação visual, orientada a objetos, C++ e Qt
       Pré-requisitos: Um pouco de C++.


                      Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                       Como começar?
                         Programando
                             Futuro...
Biblioteca de Classes


      Totalmente orientada a objetos
      Multi-plataforma
      Classes visuais cobrindo múltiplas necessidades
      Classes-extra, de uso geral




                    Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                       Como começar?
                         Programando
                             Futuro...
Utilização


      Criação de aplicativos para o Desktop
      Criação de aplicativos embarcados
      Criação de aplicativos para o shell (!)

      Exemplos de Uso: KDE, Lyx, Skype, ...




                    Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                       Como começar?
                         Programando
                             Futuro...
Utilização


      Criação de aplicativos para o Desktop
      Criação de aplicativos embarcados
      Criação de aplicativos para o shell (!)

      Exemplos de Uso: KDE, Lyx, Skype, ...




                    Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                      Como começar?
                        Programando
                            Futuro...
Instalação

  Denition
  Método Fácil

      Instale Linux
      Usando o instalador de programas, instale todos os pacotes
      com qt4
      Não esqueça do compilador (g++) e do make




                   Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                       Como começar?
                         Programando
                             Futuro...
Instalação

  Denition
  Método menos fácil

      Vá no site da Trolltech: www.trolltech.com
      Baixe o que for necessário
      Não esqueça de baixar a versão com mingw, e seguir as
      instruções corretamente




                   Dr. Henrique Marks    Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                     Como começar?
                       Programando
                           Futuro...
Ambiente de Desenvolvimento
      Vamos escrever o código num editor de textos simples
      Vamos compilar o código no terminal
      Cada programa DEVE ser colocado numa pasta separada dos
      demais
      Um programa pode (e será) composto de vários arquivos

  Denition
  Vantagem deste método

      É rápido, é eciente, é simples
      Sem as complexidades de um IDE

                  Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                    Como começar?
                      Programando
                          Futuro...
Exemplo 1
  Example
  Hello World

      #include QApplication
      #include QLabel
      int main(int argc, char *argv[])
      {
           QApplication app(argc, argv);
           QLabel *label = new QLabel(Hello Qt!);
           label-show();
           return app.exec();
      }


                 Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 1
  Denition
  Entendendo o Código

      #include QApplication
      #include QLabel
      int main(int argc, char *argv[])
      {
           QApplication app(argc, argv);

      Arquivos de cabeçalho, função main, e criação do Objeto app,
      do tipo QApplication
      Sempre igual, em todos os programas

                   Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 1
  Denition
  Entendendo o Código

      #include QApplication
      #include QLabel
      int main(int argc, char *argv[])
      {
           QApplication app(argc, argv);

      Arquivos de cabeçalho, função main, e criação do Objeto app,
      do tipo QApplication
      Sempre igual, em todos os programas

                   Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 1

  Denition
  Entendendo o Código

      QLabel *label = new QLabel(Hello Qt!);
      label-show();

      Criamos um objeto (ponteiro) label, do tipo QLabel.
      Chamamos a construtora do objeto, passando a string
      (QString) Hello Qt!
      Mostramos o QWidget no programa.



                   Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 1

  Denition
  Entendendo o Código

      QLabel *label = new QLabel(Hello Qt!);
      label-show();

      Criamos um objeto (ponteiro) label, do tipo QLabel.
      Chamamos a construtora do objeto, passando a string
      (QString) Hello Qt!
      Mostramos o QWidget no programa.



                   Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                      Como começar?
                        Programando
                            Futuro...
Compilando e rodando
     Crie a pasta prog1, salve o arquivo ali como ex1.cpp
     Pelo terminal, entre na pasta e rode os comandos
         qmake-qt4 -project
         qmake-qt4
         make
     O primeiro comando cria um arquivo de projeto (.pro)
     O segundo cria um Makele, com instruções de compilação
     O terceiro compila, linka, etc, seguindo as instruções do
     makele
     Rode o executável (clique no arquivo prog1 que está nesta
     pasta)

                   Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                   Como começar?
                     Programando
                         Futuro...
Programa rodando




               Dr. Henrique Marks    Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 2
  Example
  Fazendo conexões

      QApplication app(argc, argv);
      QWidget window;
      window.resize(200, 120);
      QPushButton quit(Quit, window);
      quit.setFont(QFont(Times, 18, QFont::Bold));
      quit.setGeometry(10, 40, 180, 40);
      QObject::connect(quit, SIGNAL(clicked()),
                       app, SLOT(quit()));
      window.show();


                     Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 2
  Denition
  Entendendo o Código

      QWidget window;
      window.resize(200, 120);

      Criamos o objeto window, do tipo QWidget
      Chamamos a função resize para este objeto

      QWidget é uma classe muito importante na hierarquia de
      classes do Qt.
      QPushButton herda de Qwidget, ou seja, é uma sub-classe de
      QWidget
                   Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 2
  Denition
  Entendendo o Código

      QWidget window;
      window.resize(200, 120);

      Criamos o objeto window, do tipo QWidget
      Chamamos a função resize para este objeto

      QWidget é uma classe muito importante na hierarquia de
      classes do Qt.
      QPushButton herda de Qwidget, ou seja, é uma sub-classe de
      QWidget
                   Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 2
  Denition
  Entendendo o Código

      QWidget window;
      window.resize(200, 120);

      Criamos o objeto window, do tipo QWidget
      Chamamos a função resize para este objeto

      QWidget é uma classe muito importante na hierarquia de
      classes do Qt.
      QPushButton herda de Qwidget, ou seja, é uma sub-classe de
      QWidget
                   Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 2
  Denition
  Entendendo o Código

      QPushButton quit(Quit, window);
      quit.setFont(QFont(Times, 18, QFont::Bold));
      quit.setGeometry(10, 40, 180, 40);

      Criamos o objeto quit, do tipo QPushButton
      Chamamos sua construtora, com dois parâmetros:
          Uma QString Quit
          O ponteiro para o QWidget que conterá este botão (window)
      Uma função do QPushButton para denir a fonte
      Uma função do QPushButton para denir a geometria
                   Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 2
  Denition
  Entendendo o Código

      QPushButton quit(Quit, window);
      quit.setFont(QFont(Times, 18, QFont::Bold));
      quit.setGeometry(10, 40, 180, 40);

      Criamos o objeto quit, do tipo QPushButton
      Chamamos sua construtora, com dois parâmetros:
          Uma QString Quit
          O ponteiro para o QWidget que conterá este botão (window)
      Uma função do QPushButton para denir a fonte
      Uma função do QPushButton para denir a geometria
                   Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 2
  Denition
  Entendendo o código

      QObject::connect(quit, SIGNAL(clicked()),
                       app, SLOT(quit()));
      window.show();

      Mecanismo Signal - Slot do Qt
      Quando o botão quit for clicado, será chamada a função quit
      do objeto app
      Sinais: clicked, drag, drop, release, etc.
      Slots: Nossas Funções (o nosso código!!!)

                   Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                        Como começar?
                          Programando
                              Futuro...
Exemplo 2
  Denition
  Entendendo o código

      QObject::connect(quit, SIGNAL(clicked()),
                       app, SLOT(quit()));
      window.show();

      Mecanismo Signal - Slot do Qt
      Quando o botão quit for clicado, será chamada a função quit
      do objeto app
      Sinais: clicked, drag, drop, release, etc.
      Slots: Nossas Funções (o nosso código!!!)

                   Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                   Como começar?
                     Programando
                         Futuro...
Programa Rodando




              Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                   Como começar?
                     Programando
                         Futuro...
Exemplo 3

     main.cpp
     int main(int argc, char *argv[])
     {
         QApplication app(argc, argv);
         MainWindow mainWin;
         mainWin.show();
         return app.exec();
     }




                Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                    Como começar?
                      Programando
                          Futuro...
Exemplo 3

     mainwindow.h
     class MainWindow : public QMainWindow
     {
         Q_OBJECT
         public:
             MainWindow();
         private:
             QTableWidget *tableWidget;
     };



                Dr. Henrique Marks    Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                      Como começar?
                        Programando
                            Futuro...
Exemplo 3


     mainwindow.cpp
     #include mainwindow.h
     MainWindow::MainWindow()
     {
         tableWidget = new QTableWidget(10,20,this);
         setCentralWidget(tableWidget);
     }




                 Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                      Como começar?
                        Programando
                            Futuro...
Exemplo 3

  Denition
  Entendendo o código (main.cpp)

      MainWindow mainWin;
      mainWin.show();

      Criando o objeto mainWin do tipo MainWindow
      Chamando a função show deste objeto

      Que classe é esta, MainWindow ?


                   Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                      Como começar?
                        Programando
                            Futuro...
Exemplo 3

  Denition
  Entendendo o código (main.cpp)

      MainWindow mainWin;
      mainWin.show();

      Criando o objeto mainWin do tipo MainWindow
      Chamando a função show deste objeto

      Que classe é esta, MainWindow ?


                   Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                      Como começar?
                        Programando
                            Futuro...
Exemplo 3

  Denition
  Entendendo o código (main.cpp)

      MainWindow mainWin;
      mainWin.show();

      Criando o objeto mainWin do tipo MainWindow
      Chamando a função show deste objeto

      Que classe é esta, MainWindow ?


                   Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                     Como começar?
                       Programando
                           Futuro...
Exemplo 3
  Denition
  Entendendo o Código (mainwindow.h)

      class MainWindow : public QMainWindow {
          Q_OBJECT
          public: MainWindow();
          private: QTableWidget *tableWidget; };

      Denição da classe MainWindow, que herda de QMainWindow
      A classe contém uma construtora MainWindow()
      A classe contém um objeto do tipo QTableWidget


                  Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                     Como começar?
                       Programando
                           Futuro...
Exemplo 3
  Denition
  Entendendo o Código (mainwindow.h)

      class MainWindow : public QMainWindow {
          Q_OBJECT
          public: MainWindow();
          private: QTableWidget *tableWidget; };

      Denição da classe MainWindow, que herda de QMainWindow
      A classe contém uma construtora MainWindow()
      A classe contém um objeto do tipo QTableWidget


                  Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                      Como começar?
                        Programando
                            Futuro...
Exemplo 3
  Denition
  Entendendo o Código (mainwindow.cpp)

      #include mainwindow.h
      MainWindow::MainWindow() {
          tableWidget = new QTableWidget(10,20,this);
          setCentralWidget(tableWidget); }

      Inclusão da denição
      Denição da contrutora:
          Criamos um (ponteiro) objeto tableWidget
          Chamamos a função que diz que ele é o Widget central


                   Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                      Como começar?
                        Programando
                            Futuro...
Exemplo 3
  Denition
  Entendendo o Código (mainwindow.cpp)

      #include mainwindow.h
      MainWindow::MainWindow() {
          tableWidget = new QTableWidget(10,20,this);
          setCentralWidget(tableWidget); }

      Inclusão da denição
      Denição da contrutora:
          Criamos um (ponteiro) objeto tableWidget
          Chamamos a função que diz que ele é o Widget central


                   Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                   Como começar?
                     Programando
                         Futuro...
Programa Rodando




              Dr. Henrique Marks     Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?
                     Como começar?
                       Programando
                           Futuro...
Aprendendo Mais


     Vá na página da Trolltech (agora Nokia):
         www.trolltech.com
         doc.trolltech.com
     Vá na minha página
         henriquemarks.googlepages.com
         Estamos na sétima aula na FACSUL, teremos 12.




                  Dr. Henrique Marks   Desenvolvimento orientado a objetos com C++ e Qt4

Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks

  • 1.
    O que éQt ? Como começar? Programando Futuro... Desenvolvimento orientado a objetos com C++ e Qt4 Dr. Henrique Marks November 8, 2008 Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 2.
    O que éQt ? Como começar? Programando Futuro... Sumário 1 O que é Qt ? 2 Como começar? 3 Programando 4 Futuro... Nível Intermediário Programação visual, orientada a objetos, C++ e Qt Pré-requisitos: Um pouco de C++. Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 3.
    O que éQt ? Como começar? Programando Futuro... Biblioteca de Classes Totalmente orientada a objetos Multi-plataforma Classes visuais cobrindo múltiplas necessidades Classes-extra, de uso geral Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 4.
    O que éQt ? Como começar? Programando Futuro... Utilização Criação de aplicativos para o Desktop Criação de aplicativos embarcados Criação de aplicativos para o shell (!) Exemplos de Uso: KDE, Lyx, Skype, ... Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 5.
    O que éQt ? Como começar? Programando Futuro... Utilização Criação de aplicativos para o Desktop Criação de aplicativos embarcados Criação de aplicativos para o shell (!) Exemplos de Uso: KDE, Lyx, Skype, ... Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 6.
    O que éQt ? Como começar? Programando Futuro... Instalação Denition Método Fácil Instale Linux Usando o instalador de programas, instale todos os pacotes com qt4 Não esqueça do compilador (g++) e do make Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 7.
    O que éQt ? Como começar? Programando Futuro... Instalação Denition Método menos fácil Vá no site da Trolltech: www.trolltech.com Baixe o que for necessário Não esqueça de baixar a versão com mingw, e seguir as instruções corretamente Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 8.
    O que éQt ? Como começar? Programando Futuro... Ambiente de Desenvolvimento Vamos escrever o código num editor de textos simples Vamos compilar o código no terminal Cada programa DEVE ser colocado numa pasta separada dos demais Um programa pode (e será) composto de vários arquivos Denition Vantagem deste método É rápido, é eciente, é simples Sem as complexidades de um IDE Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 9.
    O que éQt ? Como começar? Programando Futuro... Exemplo 1 Example Hello World #include QApplication #include QLabel int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel *label = new QLabel(Hello Qt!); label-show(); return app.exec(); } Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 10.
    O que éQt ? Como começar? Programando Futuro... Exemplo 1 Denition Entendendo o Código #include QApplication #include QLabel int main(int argc, char *argv[]) { QApplication app(argc, argv); Arquivos de cabeçalho, função main, e criação do Objeto app, do tipo QApplication Sempre igual, em todos os programas Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 11.
    O que éQt ? Como começar? Programando Futuro... Exemplo 1 Denition Entendendo o Código #include QApplication #include QLabel int main(int argc, char *argv[]) { QApplication app(argc, argv); Arquivos de cabeçalho, função main, e criação do Objeto app, do tipo QApplication Sempre igual, em todos os programas Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 12.
    O que éQt ? Como começar? Programando Futuro... Exemplo 1 Denition Entendendo o Código QLabel *label = new QLabel(Hello Qt!); label-show(); Criamos um objeto (ponteiro) label, do tipo QLabel. Chamamos a construtora do objeto, passando a string (QString) Hello Qt! Mostramos o QWidget no programa. Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 13.
    O que éQt ? Como começar? Programando Futuro... Exemplo 1 Denition Entendendo o Código QLabel *label = new QLabel(Hello Qt!); label-show(); Criamos um objeto (ponteiro) label, do tipo QLabel. Chamamos a construtora do objeto, passando a string (QString) Hello Qt! Mostramos o QWidget no programa. Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 14.
    O que éQt ? Como começar? Programando Futuro... Compilando e rodando Crie a pasta prog1, salve o arquivo ali como ex1.cpp Pelo terminal, entre na pasta e rode os comandos qmake-qt4 -project qmake-qt4 make O primeiro comando cria um arquivo de projeto (.pro) O segundo cria um Makele, com instruções de compilação O terceiro compila, linka, etc, seguindo as instruções do makele Rode o executável (clique no arquivo prog1 que está nesta pasta) Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 15.
    O que éQt ? Como começar? Programando Futuro... Programa rodando Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 16.
    O que éQt ? Como começar? Programando Futuro... Exemplo 2 Example Fazendo conexões QApplication app(argc, argv); QWidget window; window.resize(200, 120); QPushButton quit(Quit, window); quit.setFont(QFont(Times, 18, QFont::Bold)); quit.setGeometry(10, 40, 180, 40); QObject::connect(quit, SIGNAL(clicked()), app, SLOT(quit())); window.show(); Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 17.
    O que éQt ? Como começar? Programando Futuro... Exemplo 2 Denition Entendendo o Código QWidget window; window.resize(200, 120); Criamos o objeto window, do tipo QWidget Chamamos a função resize para este objeto QWidget é uma classe muito importante na hierarquia de classes do Qt. QPushButton herda de Qwidget, ou seja, é uma sub-classe de QWidget Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 18.
    O que éQt ? Como começar? Programando Futuro... Exemplo 2 Denition Entendendo o Código QWidget window; window.resize(200, 120); Criamos o objeto window, do tipo QWidget Chamamos a função resize para este objeto QWidget é uma classe muito importante na hierarquia de classes do Qt. QPushButton herda de Qwidget, ou seja, é uma sub-classe de QWidget Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 19.
    O que éQt ? Como começar? Programando Futuro... Exemplo 2 Denition Entendendo o Código QWidget window; window.resize(200, 120); Criamos o objeto window, do tipo QWidget Chamamos a função resize para este objeto QWidget é uma classe muito importante na hierarquia de classes do Qt. QPushButton herda de Qwidget, ou seja, é uma sub-classe de QWidget Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 20.
    O que éQt ? Como começar? Programando Futuro... Exemplo 2 Denition Entendendo o Código QPushButton quit(Quit, window); quit.setFont(QFont(Times, 18, QFont::Bold)); quit.setGeometry(10, 40, 180, 40); Criamos o objeto quit, do tipo QPushButton Chamamos sua construtora, com dois parâmetros: Uma QString Quit O ponteiro para o QWidget que conterá este botão (window) Uma função do QPushButton para denir a fonte Uma função do QPushButton para denir a geometria Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 21.
    O que éQt ? Como começar? Programando Futuro... Exemplo 2 Denition Entendendo o Código QPushButton quit(Quit, window); quit.setFont(QFont(Times, 18, QFont::Bold)); quit.setGeometry(10, 40, 180, 40); Criamos o objeto quit, do tipo QPushButton Chamamos sua construtora, com dois parâmetros: Uma QString Quit O ponteiro para o QWidget que conterá este botão (window) Uma função do QPushButton para denir a fonte Uma função do QPushButton para denir a geometria Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 22.
    O que éQt ? Como começar? Programando Futuro... Exemplo 2 Denition Entendendo o código QObject::connect(quit, SIGNAL(clicked()), app, SLOT(quit())); window.show(); Mecanismo Signal - Slot do Qt Quando o botão quit for clicado, será chamada a função quit do objeto app Sinais: clicked, drag, drop, release, etc. Slots: Nossas Funções (o nosso código!!!) Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 23.
    O que éQt ? Como começar? Programando Futuro... Exemplo 2 Denition Entendendo o código QObject::connect(quit, SIGNAL(clicked()), app, SLOT(quit())); window.show(); Mecanismo Signal - Slot do Qt Quando o botão quit for clicado, será chamada a função quit do objeto app Sinais: clicked, drag, drop, release, etc. Slots: Nossas Funções (o nosso código!!!) Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 24.
    O que éQt ? Como começar? Programando Futuro... Programa Rodando Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 25.
    O que éQt ? Como começar? Programando Futuro... Exemplo 3 main.cpp int main(int argc, char *argv[]) { QApplication app(argc, argv); MainWindow mainWin; mainWin.show(); return app.exec(); } Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 26.
    O que éQt ? Como começar? Programando Futuro... Exemplo 3 mainwindow.h class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); private: QTableWidget *tableWidget; }; Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 27.
    O que éQt ? Como começar? Programando Futuro... Exemplo 3 mainwindow.cpp #include mainwindow.h MainWindow::MainWindow() { tableWidget = new QTableWidget(10,20,this); setCentralWidget(tableWidget); } Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 28.
    O que éQt ? Como começar? Programando Futuro... Exemplo 3 Denition Entendendo o código (main.cpp) MainWindow mainWin; mainWin.show(); Criando o objeto mainWin do tipo MainWindow Chamando a função show deste objeto Que classe é esta, MainWindow ? Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 29.
    O que éQt ? Como começar? Programando Futuro... Exemplo 3 Denition Entendendo o código (main.cpp) MainWindow mainWin; mainWin.show(); Criando o objeto mainWin do tipo MainWindow Chamando a função show deste objeto Que classe é esta, MainWindow ? Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 30.
    O que éQt ? Como começar? Programando Futuro... Exemplo 3 Denition Entendendo o código (main.cpp) MainWindow mainWin; mainWin.show(); Criando o objeto mainWin do tipo MainWindow Chamando a função show deste objeto Que classe é esta, MainWindow ? Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 31.
    O que éQt ? Como começar? Programando Futuro... Exemplo 3 Denition Entendendo o Código (mainwindow.h) class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); private: QTableWidget *tableWidget; }; Denição da classe MainWindow, que herda de QMainWindow A classe contém uma construtora MainWindow() A classe contém um objeto do tipo QTableWidget Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 32.
    O que éQt ? Como começar? Programando Futuro... Exemplo 3 Denition Entendendo o Código (mainwindow.h) class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(); private: QTableWidget *tableWidget; }; Denição da classe MainWindow, que herda de QMainWindow A classe contém uma construtora MainWindow() A classe contém um objeto do tipo QTableWidget Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 33.
    O que éQt ? Como começar? Programando Futuro... Exemplo 3 Denition Entendendo o Código (mainwindow.cpp) #include mainwindow.h MainWindow::MainWindow() { tableWidget = new QTableWidget(10,20,this); setCentralWidget(tableWidget); } Inclusão da denição Denição da contrutora: Criamos um (ponteiro) objeto tableWidget Chamamos a função que diz que ele é o Widget central Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 34.
    O que éQt ? Como começar? Programando Futuro... Exemplo 3 Denition Entendendo o Código (mainwindow.cpp) #include mainwindow.h MainWindow::MainWindow() { tableWidget = new QTableWidget(10,20,this); setCentralWidget(tableWidget); } Inclusão da denição Denição da contrutora: Criamos um (ponteiro) objeto tableWidget Chamamos a função que diz que ele é o Widget central Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 35.
    O que éQt ? Como começar? Programando Futuro... Programa Rodando Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  • 36.
    O que éQt ? Como começar? Programando Futuro... Aprendendo Mais Vá na página da Trolltech (agora Nokia): www.trolltech.com doc.trolltech.com Vá na minha página henriquemarks.googlepages.com Estamos na sétima aula na FACSUL, teremos 12. Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4