Vous êtes sur la page 1sur 36

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

Vous aimerez peut-être aussi