Your SlideShare is downloading. ×
Desenvolvimento orientado a objetos com C++ e QT4 - Henrique Marks
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

2,500
views

Published on


0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,500
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
90
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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