Upload
tchelinux-slides
View
2.589
Download
4
Embed Size (px)
Citation preview
O que é Qt ?Como começar?
ProgramandoFuturo...
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?
ProgramandoFuturo...
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?
ProgramandoFuturo...
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?
ProgramandoFuturo...
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?
ProgramandoFuturo...
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?
ProgramandoFuturo...
Instalação
De�nition
Método Fácil
Instale Linux
Usando o instalador de programas, instale todos os pacotescom 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?
ProgramandoFuturo...
Instalação
De�nition
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 asinstruções corretamente
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?Como começar?
ProgramandoFuturo...
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 dosdemais
Um programa pode (e será) composto de vários arquivos
De�nition
Vantagem deste método
É rápido, é e�ciente, é simples
Sem as complexidades de um IDE
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?Como começar?
ProgramandoFuturo...
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?
ProgramandoFuturo...
Exemplo 1
De�nition
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?
ProgramandoFuturo...
Exemplo 1
De�nition
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?
ProgramandoFuturo...
Exemplo 1
De�nition
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?
ProgramandoFuturo...
Exemplo 1
De�nition
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?
ProgramandoFuturo...
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 -projectqmake-qt4make
O primeiro comando cria um arquivo de projeto (.pro)
O segundo cria um Make�le, com instruções de compilação
O terceiro compila, linka, etc, seguindo as instruções domake�le
Rode o executável (clique no arquivo prog1 que está nestapasta)
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?Como começar?
ProgramandoFuturo...
Programa rodando
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?Como começar?
ProgramandoFuturo...
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?
ProgramandoFuturo...
Exemplo 2
De�nition
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 declasses do Qt.
QPushButton herda de Qwidget, ou seja, é uma sub-classe deQWidget
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?Como começar?
ProgramandoFuturo...
Exemplo 2
De�nition
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 declasses do Qt.
QPushButton herda de Qwidget, ou seja, é uma sub-classe deQWidget
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?Como começar?
ProgramandoFuturo...
Exemplo 2
De�nition
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 declasses do Qt.
QPushButton herda de Qwidget, ou seja, é uma sub-classe deQWidget
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?Como começar?
ProgramandoFuturo...
Exemplo 2
De�nition
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 de�nir a fonte
Uma função do QPushButton para de�nir a geometria
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?Como começar?
ProgramandoFuturo...
Exemplo 2
De�nition
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 de�nir a fonte
Uma função do QPushButton para de�nir a geometria
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?Como começar?
ProgramandoFuturo...
Exemplo 2
De�nition
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 quitdo 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?
ProgramandoFuturo...
Exemplo 2
De�nition
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 quitdo 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?
ProgramandoFuturo...
Programa Rodando
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?Como começar?
ProgramandoFuturo...
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?
ProgramandoFuturo...
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?
ProgramandoFuturo...
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?
ProgramandoFuturo...
Exemplo 3
De�nition
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?
ProgramandoFuturo...
Exemplo 3
De�nition
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?
ProgramandoFuturo...
Exemplo 3
De�nition
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?
ProgramandoFuturo...
Exemplo 3
De�nition
Entendendo o Código (mainwindow.h)
class MainWindow : public QMainWindow {
Q_OBJECT
public: MainWindow();
private: QTableWidget *tableWidget; };
De�niçã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?
ProgramandoFuturo...
Exemplo 3
De�nition
Entendendo o Código (mainwindow.h)
class MainWindow : public QMainWindow {
Q_OBJECT
public: MainWindow();
private: QTableWidget *tableWidget; };
De�niçã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?
ProgramandoFuturo...
Exemplo 3
De�nition
Entendendo o Código (mainwindow.cpp)
#include "mainwindow.h"
MainWindow::MainWindow() {
tableWidget = new QTableWidget(10,20,this);
setCentralWidget(tableWidget); }
Inclusão da de�nição
De�nição da contrutora:
Criamos um (ponteiro) objeto tableWidgetChamamos 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?
ProgramandoFuturo...
Exemplo 3
De�nition
Entendendo o Código (mainwindow.cpp)
#include "mainwindow.h"
MainWindow::MainWindow() {
tableWidget = new QTableWidget(10,20,this);
setCentralWidget(tableWidget); }
Inclusão da de�nição
De�nição da contrutora:
Criamos um (ponteiro) objeto tableWidgetChamamos 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?
ProgramandoFuturo...
Programa Rodando
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4
O que é Qt ?Como começar?
ProgramandoFuturo...
Aprendendo Mais
Vá na página da Trolltech (agora Nokia):
www.trolltech.comdoc.trolltech.com
Vá na minha página
henriquemarks.googlepages.comEstamos na sétima aula na FACSUL, teremos 12.
Dr. Henrique Marks Desenvolvimento orientado a objetos com C++ e Qt4