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

2.984 visualizações

Publicada em

Publicada em: Tecnologia, Diversão e humor
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.984
No SlideShare
0
A partir de incorporações
0
Número de incorporações
8
Ações
Compartilhamentos
0
Downloads
118
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 15. O que é Qt ? Como começar? Programando Futuro... Programa rodando Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  16. 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. 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. 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. 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. 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. 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. 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. 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. 24. O que é Qt ? Como começar? Programando Futuro... Programa Rodando Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  25. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 35. O que é Qt ? Como começar? Programando Futuro... Programa Rodando Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
  36. 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

×