Escolar Documentos
Profissional Documentos
Cultura Documentos
C++ com Qt 4
Introducao
a` Programacao
C++ com Qt 4
Introducao
Antonio Marcio A. Menezes
antonio-marcio.menezes@serpro.gov.br
II Forum
de Tecnologia em Software Livre
SERPRO - Regional Porto Alegre
Outubro de 2009
a` Programacao
C++ com Qt 4 (1/112)
Introducao
a` Programacao
C++ com Qt 4
Introducao
Agenda
1
Parte Teorica
Por que C++ e Qt?
O que preciso para comecar?
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (2/112)
Introducao
a` Programacao
C++ com Qt 4
Introducao
Agenda
1
Parte Teorica
Por que C++ e Qt?
O que preciso para comecar?
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (2/112)
Introducao
Parte Teorica
Agenda
1
Parte Teorica
Por que C++ e Qt?
O que preciso para comecar?
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (3/112)
Introducao
Parte Teorica
a` Programacao
C++ com Qt 4 (4/112)
Introducao
Parte Teorica
Historia
do Qt
O framework Qt comecou a estar disponvel publicamente a
partir de maio de 1995. Foi criado por Haarvard Nord e Eirik
Chambe-Eng, fundadores da empresa Trolltech. Desde seu
incio, Qt foi concebido para ser multiplataforma.
se tornou o
Em marco de 1996, a agencia
espacial europeia
segundo cliente do Qt. E em setembro deste ano, foi lancada a
1.0 do Qt. Ainda neste ano, foi iniciado o projeto KDE,
versao
desenvolvido com Qt, por Matthias Ettrich. Mais tarde, em 1998,
Matthias foi contratado pela Trolltech.
a` Programacao
C++ com Qt 4 (5/112)
Introducao
Parte Teorica
Historia
do Qt
O framework Qt comecou a estar disponvel publicamente a
partir de maio de 1995. Foi criado por Haarvard Nord e Eirik
Chambe-Eng, fundadores da empresa Trolltech. Desde seu
incio, Qt foi concebido para ser multiplataforma.
se tornou o
Em marco de 1996, a agencia
espacial europeia
segundo cliente do Qt. E em setembro deste ano, foi lancada a
1.0 do Qt. Ainda neste ano, foi iniciado o projeto KDE,
versao
desenvolvido com Qt, por Matthias Ettrich. Mais tarde, em 1998,
Matthias foi contratado pela Trolltech.
a` Programacao
C++ com Qt 4 (5/112)
Introducao
Parte Teorica
Historia
do Qt
2.0 do Qt foi liberada. Uma versao
do Qt
Em 1999, a versao
para linux embarcado, por sua vez, foi lancada em 2000.
3.0 do Qt, agora
Em 2001, seguiu-se o lancamento da versao
disponvel para Windows, MacOS X, Unix e Linux (desktop e
embarcado).
Qt 4.0 tornou-se disponvel, conEm meados de 2005, a versao
a` Programacao
C++ com Qt 4 (6/112)
Introducao
Parte Teorica
Historia
do Qt
2.0 do Qt foi liberada. Uma versao
do Qt
Em 1999, a versao
para linux embarcado, por sua vez, foi lancada em 2000.
3.0 do Qt, agora
Em 2001, seguiu-se o lancamento da versao
disponvel para Windows, MacOS X, Unix e Linux (desktop e
embarcado).
Qt 4.0 tornou-se disponvel, conEm meados de 2005, a versao
a` Programacao
C++ com Qt 4 (6/112)
Introducao
Parte Teorica
Historia
do Qt
2.0 do Qt foi liberada. Uma versao
do Qt
Em 1999, a versao
para linux embarcado, por sua vez, foi lancada em 2000.
3.0 do Qt, agora
Em 2001, seguiu-se o lancamento da versao
disponvel para Windows, MacOS X, Unix e Linux (desktop e
embarcado).
Qt 4.0 tornou-se disponvel, conEm meados de 2005, a versao
a` Programacao
C++ com Qt 4 (6/112)
Introducao
Parte Teorica
Historia
do Qt
desenvolvimento de aplicacoes:
o Qt Creator.
a` Programacao
C++ com Qt 4 (7/112)
Introducao
Parte Teorica
Historia
do Qt
desenvolvimento de aplicacoes:
o Qt Creator.
a` Programacao
C++ com Qt 4 (7/112)
Introducao
Parte Teorica
Programacao
com Qt.
Implemente uma vez. Compile em qualquer lugar.
KDE sao
feitas com Qt.
Aplicacoes
de interfaces graficas
Criacao
elegantes e amigaveis.
de uma API rica e util.
Utilizacao
a` Programacao
C++ com Qt 4 (8/112)
Introducao
Parte Teorica
monitoracao
desenvolvido pela DFS (empresa de
controle aereo
da Alemanha).
VLC, reprodutor de mdia.
de imagens de satelite
a` Programacao
C++ com Qt 4 (9/112)
Introducao
Parte Teorica
Varios
modelos de celulares da Motorola.
Vdeo-fone VP 5500 da Philips.
Sony mylo, um comunicador pessoal.
Telefone Wi-Fi KX-WP1050 para Skype da Panasonic.
Smartphones 3G da ZTE.
GPS Naviflash 1020 da Bury.
da digitalCube.
Reprodutor de mdia portatil
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (10/112)
Introducao
Parte Teorica
Agenda
1
Parte Teorica
Por que C++ e Qt?
O que preciso para comecar?
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (11/112)
Introducao
Parte Teorica
sintaticas
para ja iniciar o aprendizado.
de exemplos
Estudar atraves
do Qt ja vem com muitos exemplos de aplicacoes
A instalacao
fornecidos com seus codigos.
uteis.
Estes exemplos sao
a` Programacao
C++ com Qt 4 (12/112)
Introducao
Parte Teorica
Instalacao
Na pagina
http://qt.nokia.com/downloads voce pode fazer o
LGPL/Free.
download da versao
Clique em Download Qt SDK for Linux/X11 32-bit (275
Mb).
(certifiqueCom isto, voce ira obter o arquivo de instalacao
de execucao
para o mesmo):
se de conceder permissao
qt-sdk-linux-x86-opensource-2009.03.1.bin.
verificar se estao
instalados os seguintes
E necessario
tambem
pacotes: libfreetype6-dev e libgtk2.0-dev.
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (13/112)
Introducao
Parte Teorica
- Tela 1
Instalacao
a` Programacao
C++ com Qt 4 (14/112)
Introducao
Parte Teorica
- Tela 2
Instalacao
a` Programacao
C++ com Qt 4 (15/112)
Introducao
Parte Teorica
- Tela 3
Instalacao
a` Programacao
C++ com Qt 4 (16/112)
Introducao
Parte Teorica
- Tela 4
Instalacao
a` Programacao
C++ com Qt 4 (17/112)
Introducao
Parte Teorica
- Tela 5
Instalacao
a` Programacao
C++ com Qt 4 (18/112)
Introducao
Parte Teorica
- Tela 6
Instalacao
a` Programacao
C++ com Qt 4 (19/112)
Introducao
Parte Teorica
- Tela 7
Instalacao
a` Programacao
C++ com Qt 4 (20/112)
Introducao
Parte Teorica
- Tela 8
Instalacao
a` Programacao
C++ com Qt 4 (21/112)
Introducao
Parte Teorica
- Resumo
Instalacao
do Qt SDK, serao
encontraAo final, no diretorio
de instalacao
bin e o diretorio
onde se encontra o executavel
do IDE
Qt Creator.
do Qt
lib armazena bibliotecas necessarias
a execucao
Creator.
qt e onde se encontra o framework Qt e suas ferramen bin que contem
os
tas. Dentro deste, ha outro diretorio
executaveis
do framework.
a` Programacao
C++ com Qt 4 (22/112)
Introducao
Parte Teorica
Fundamentos
Um programa em C++ consiste de um ou mais unidades de
e um arquivo texto
compilacao.
Cada unidade de compilacao
o codigo
de maquina
especfico da arquitetura da maquina
onde
foi gerado.
a` Programacao
C++ com Qt 4 (23/112)
Introducao
Parte Teorica
Fundamentos
Um programa em C++ consiste de um ou mais unidades de
e um arquivo texto
compilacao.
Cada unidade de compilacao
o codigo
de maquina
especfico da arquitetura da maquina
onde
foi gerado.
a` Programacao
C++ com Qt 4 (23/112)
Introducao
Parte Teorica
Fundamentos
Um programa em C++ passa por 6 passos
(com um programa editor de texto, por exemplo).
Edicao
de diretivas sao
realizadas inPre-processamento
(atraves
e substituicoes
de textos).
clusoes
(geracao
do codigo
Compilacao
objeto).
(linking com o codigo
Ligacao
das rotinas referenciadas em
bibliotecas).
a` Programacao
C++ com Qt 4 (24/112)
Introducao
Parte Teorica
Fundamentos
Um programa em C++ passa por 6 passos
(com um programa editor de texto, por exemplo).
Edicao
de diretivas sao
realizadas inPre-processamento
(atraves
e substituicoes
de textos).
clusoes
(geracao
do codigo
Compilacao
objeto).
(linking com o codigo
Ligacao
das rotinas referenciadas em
bibliotecas).
a` Programacao
C++ com Qt 4 (24/112)
Introducao
Parte Teorica
Fundamentos
Um programa em C++ passa por 6 passos
(com um programa editor de texto, por exemplo).
Edicao
de diretivas sao
realizadas inPre-processamento
(atraves
e substituicoes
de textos).
clusoes
(geracao
do codigo
Compilacao
objeto).
(linking com o codigo
Ligacao
das rotinas referenciadas em
bibliotecas).
a` Programacao
C++ com Qt 4 (24/112)
Introducao
Parte Teorica
Fundamentos
Um programa em C++ passa por 6 passos
(com um programa editor de texto, por exemplo).
Edicao
de diretivas sao
realizadas inPre-processamento
(atraves
e substituicoes
de textos).
clusoes
(geracao
do codigo
Compilacao
objeto).
(linking com o codigo
Ligacao
das rotinas referenciadas em
bibliotecas).
a` Programacao
C++ com Qt 4 (24/112)
Introducao
Parte Teorica
Fundamentos
Um programa em C++ passa por 6 passos
(com um programa editor de texto, por exemplo).
Edicao
de diretivas sao
realizadas inPre-processamento
(atraves
e substituicoes
de textos).
clusoes
(geracao
do codigo
Compilacao
objeto).
(linking com o codigo
Ligacao
das rotinas referenciadas em
bibliotecas).
a` Programacao
C++ com Qt 4 (24/112)
Introducao
Parte Teorica
Fundamentos
Um programa em C++ passa por 6 passos
(com um programa editor de texto, por exemplo).
Edicao
de diretivas sao
realizadas inPre-processamento
(atraves
e substituicoes
de textos).
clusoes
(geracao
do codigo
Compilacao
objeto).
(linking com o codigo
Ligacao
das rotinas referenciadas em
bibliotecas).
a` Programacao
C++ com Qt 4 (24/112)
Introducao
Parte Teorica
Modulos
do Qt
Os modulos
que compoem,
atualmente, o framework Qt sao:
QtCore, QtGui, QtNetwork, QtOpenGL, QtScript, QtSql, QSvg,
QtWebKit, QtXml, QtXmlPatterns, Phonon, Qt3Support, QtTest,
QtDBus.
a` Programacao
C++ com Qt 4 (25/112)
Introducao
Parte Teorica
Ferramentas do Qt
vem acompanhado de um conjunto de ferramenO Qt tambem
tas que auxiliam o processo de desenvolvimento.
Qt Designer para o projeto de telas. Permite testar o projeto
a` Programacao
C++ com Qt 4 (26/112)
Introducao
Parte Teorica
Ferramentas do Qt
vem acompanhado de um conjunto de ferramenO Qt tambem
tas que auxiliam o processo de desenvolvimento.
Qt Designer para o projeto de telas. Permite testar o projeto
a` Programacao
C++ com Qt 4 (26/112)
Introducao
Parte Teorica
Ferramentas do Qt
vem acompanhado de um conjunto de ferramenO Qt tambem
tas que auxiliam o processo de desenvolvimento.
Qt Designer para o projeto de telas. Permite testar o projeto
a` Programacao
C++ com Qt 4 (26/112)
Introducao
Parte Teorica
Ferramentas do Qt
vem acompanhado de um conjunto de ferramenO Qt tambem
tas que auxiliam o processo de desenvolvimento.
Qt Designer para o projeto de telas. Permite testar o projeto
a` Programacao
C++ com Qt 4 (26/112)
Introducao
Parte Teorica
com Qt
Minha primeira aplicacao
hello.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel(QString::fromUtf8(Ola Qt!));
label->show();
return app.exec();
}
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (27/112)
Introducao
Parte Teorica
com Qt
Minha primeira aplicacao
criar um diretorio
Apos
hello, sera includo deste diretorio
o
hello.cpp
arquivo .cpp da minha primeira aplicacao:
Ao digitar qmake -project, sera criado o arquivo de projeto
hello.pro
qmake hello.pro ira gerar o arquivo Makefile, que orientara a
do projeto.
compilacao
aplicacao.
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (28/112)
Introducao
Parte Teorica
com Qt
Minha primeira aplicacao
Figura: No Linux
Figura: No Windows
a` Programacao
C++ com Qt 4 (29/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Agenda
1
Parte Teorica
Por que C++ e Qt?
O que preciso para comecar?
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (30/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
treinamento, serao
exemplo.
a` Programacao
C++ com Qt 4 (31/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Versoes
o projeto inicial, sem proagenda-telefonica1.zip contem
da
jeto de tela e apenas um arquivo principal de execucao
aplicacao.
o layout inicial da tela princiagenda-telefonica2.zip contem
pal da aplicacao.
a barra de ferramentas da
agenda-telefonica3.zip contem
com as acoes
basicas
agenda-telefonica4.zip contem
o recurso de ativar a
na area
aplicacao
de notificacao.
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (32/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Versoes
agenda-telefonica6.zip contem
o primeiro codigo
para
dos dados na
acesso ao banco de dados e apresentacao
janela principal.
agenda-telefonica7.zip inclui o projeto das telas de cadastro
de departamentos e de telefones, e o armazenamento em
banco de dados.
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (33/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
incrementais da aplicacao
Versoes
a aplicacao
com suas telas
agenda-telefonica8.zip contem
e tambem
o arquivo de traducao
da
traduzidas para o ingles
para o portugues.
aplicacao
os arquivos necessarios
agenda-telefonica9.zip contem
da
a` Programacao
C++ com Qt 4 (34/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Requisitos da Aplicacao
Requisitos I
Cada pessoa cadastrada na agenda devera ser associada a
um departamento na qual trabalha.
alfanumericos.
O cadastro de cada pessoa e seu telefone de contato podera
ser acrescido com a informacao
de um numero
tambem
de
ramal.
a` Programacao
C++ com Qt 4 (35/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Requisitos da Aplicacao
Requisitos II
armazenados localmente, na
Os dados dos cadastros serao
maquina
onde se executa a agenda.
A janela principal da agenda devera fornecer uma busca sim
plificada dos telefones pelos criterios:
nome (ou parte do
nome) da pessoa e o nome do departamento.
Inicialmente, a janela principal mostrara a lista de todos os
telefones, ordenados por nome da pessoa.
um contador
Devera ser exibido na janela principal tambem
do numero
de itens exibidos nesta lista.
a` Programacao
C++ com Qt 4 (36/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Requisitos da Aplicacao
Requisitos III
(System
ainda ativa, com um cone na area
de notificacao
a` Programacao
C++ com Qt 4 (37/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Requisitos da Aplicacao
Requisitos IV
O cadastro dos departamentos sera feito em uma janela,
separadamente. Em outra janela, sera feito o cadastro das
pessoas e seus telefones.
podera ser cadastrado mais de um numero
Nao
de telefone
por pessoa.
A empresa que utilizara a agenda de telefones e ramais de
seja executar este programa em maquinas
com Linux ou
Windows.
a` Programacao
C++ com Qt 4 (38/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (39/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Diagrama ER da Aplicacao
a` Programacao
C++ com Qt 4 (40/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
do banco de dados
Script de criacao
a` Programacao
C++ com Qt 4 (41/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
do banco de dados
Script de criacao
create table PESSOAS (
NOME VARCHAR(80) NOT NULL PRIMARY KEY,
DEP CODIGO INTEGER NOT NULL
REFERENCES DEPARTAMENTOS(CODIGO)
ON DELETE RESTRICT ON UPDATE RESTRICT
ON INSERT RESTRICT,
DDD INTEGER,
TELEFONE INTEGER NOT NULL,
RAMAL INTEGER
);
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (42/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Agenda
1
Parte Teorica
Por que C++ e Qt?
O que preciso para comecar?
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (43/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
do Projeto
Exerccio de Criacao
Exerccio 01
Objetivo: Aprender como criar um projeto de
GUI (janela do tipo QMainWindow)
aplicacao
com o Qt Creator.
Tempo Estimado: 5 a 8 min.
Resultado Esperado: Criar todos os arquivos,
agendacomo os que foram criados na versao
telefonica1.zip.
a` Programacao
C++ com Qt 4 (44/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (45/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (46/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
parte do projeto
Modulos
do Qt que farao
a` Programacao
C++ com Qt 4 (47/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (48/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
do projeto
Resumo da criacao
a` Programacao
C++ com Qt 4 (49/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (50/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Agenda
1
Parte Teorica
Por que C++ e Qt?
O que preciso para comecar?
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (51/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Widgets
componentes que possuem uma
Widgets (Window Gadgets) sao
grafica
representacao
no projeto de telas. Com o Qt Designer, o
temas graficos
diferentes (Plastique, GTK+, Motif, CleanLooks
etc).
a` Programacao
C++ com Qt 4 (52/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Exerccio 02
Objetivo: Aprender a criar projetos de telas com
componentes visuais.
Tempo Estimado: 2 a 5 min.
Resultado Esperado: Adicionar todos os widgets
necessarios
para o projeto da janela principal da
Agenda.
a` Programacao
C++ com Qt 4 (53/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (54/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (55/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (56/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
serao
e possvel definir cones para
da janela principal. Tambem
criar um arquivo de
as Actions, mas para isso e necessario
recursos.
a` Programacao
C++ com Qt 4 (57/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (58/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (59/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (60/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (61/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (62/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (63/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (64/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (65/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Exerccio 03
Objetivo: Aprender a definir os layouts de telas
com o Qt Creator / Qt Designer.
Tempo Estimado: 8 a 12 min.
a` Programacao
C++ com Qt 4 (66/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (67/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (68/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (69/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (70/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a um layout ja existente
Adicionando um botao
a` Programacao
C++ com Qt 4 (71/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Agenda
1
Parte Teorica
Por que C++ e Qt?
O que preciso para comecar?
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (72/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
signals e slots?
O que sao
No Qt, um signal (sinal) e emitido quando um evento ocorre. Exis
e possvel de definir seus
tem signals pre-definidos,
mas tambem
proprios
signals. Um signal pode ser ligado a um metodo.
Desta
Nesta ligacao
o metodo
e o slot.
a` Programacao
C++ com Qt 4 (73/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (74/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (75/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Exerccio 04
Objetivo: Aprender a conectar signals e slots dos widgets
com Qt Designer.
Tempo Estimado: 2 a 5 min.
Resultado Esperado: O click sobre um QPushButton execu
tara o metodo
clean de um QLineEdit. Testar este comportamento com o Form Preview no Qt Designer.
a` Programacao
C++ com Qt 4 (76/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (77/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (78/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
O mecanismo de conexao
interacoes
nesta segunda janela determinem mudancas na
janela principal.
a` Programacao
C++ com Qt 4 (79/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Trecho do metodo
mostrarCadastroDepartamentos()
void Principal::mostrarCadastroDepartamentos()
{
Departamentos *dep = new Departamentos();
connect(
dep, SIGNAL(departamentosAtualizados()),
this, SLOT(atualizarComboDepartamentos())
);
}
a` Programacao
C++ com Qt 4 (80/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Agenda
1
Parte Teorica
Por que C++ e Qt?
O que preciso para comecar?
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (81/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Modulo
QtSql
O modulo
QtSql e o que fornece as classes e rotinas necessarias
de
para estabelecer conexoes
a bancos de dados e execucao
operacoes,
em diferentes SGBDs: IBM DB2, Interbase/Firebird,
MySQL, Oracle, PostgreSQL, SQLite, Sybase.
de
E possvel acessar outros bancos com o driver ODBC, alem
existirem plugins para acesso a outras bases de dados
tambem
(xBase, por exemplo).
a` Programacao
C++ com Qt 4 (82/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a um banco de dados
Criando uma conexao
bool criarConexao() {
QSqlDatabase bd = QSqlDatabase::addDatabase(QPSQL);
bd.setHostName(sgbd.empresa.com.br);
bd.setDatabaseName(BdFuncionarios);
bd.setUserName(usuario);
bd.setPassword(senha);
if (! bd.open() ) {
QMessageBox::critical(0, tr(DB Error), bd.lastError().text());
return false; }
return true; }
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (83/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
QStringList listaTelefones;
QSqlQuery consulta;
consulta.exec(SELECT TELEFONE FROM PESSOAS);
while (consulta.next()) {
QString telefone = consulta.value(0).toString();
listaTelefones.append(telefone);
}
a` Programacao
C++ com Qt 4 (84/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (85/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (86/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
void Principal::atualizarComboDepartamentos() {
ui->comboDepartamento->clear();
ui->comboDepartamento->addItems(getDepartamentos());
}
O metodo
addItems de QComboBox recebe como parametro
um
QStringList.
a` Programacao
C++ com Qt 4 (87/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
QSqlQuery oper;
oper.prepare(
insert into DEPART(NOME, SIGLA) values (:NM, :SG)
);
oper.bindValue(:NM, Desenvolvimento e TI);
oper.bindValue(:SG, DTI);
oper.exec();
QSqlQuery oper2(
update DEPART set SIGLA=TI where SIGLA=DTI );
a` Programacao
C++ com Qt 4 (88/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
QSqlRelationalTableModel:
Uma especializacao
de
QSqlTableModel mas com suporte a chaves estrangeiras
com outras tabelas).
(relacoes
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (89/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Agenda
1
Parte Teorica
Por que C++ e Qt?
O que preciso para comecar?
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (90/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Qt Linguist
outras lnguas e:
Usar o metodo
tr() em todas as QStrings desta aplicacao.
Este metodo
e definido em QObject.
da aplicacao
um arCarregar no momento de inicializacao
(.qm), previamente gerado com o Qt Linquivo de traducao
guist.
a` Programacao
C++ com Qt 4 (91/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (92/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (93/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (94/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Apos
de menu File->Release do Qt Linguist. Com isto, sera gerado
(.qm) do projeto de traducao.
um arquivo de compilacao
Para
podecarregar este arquivo no momento de incio da aplicacao,
a` Programacao
C++ com Qt 4 (95/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Agenda
1
Parte Teorica
Por que C++ e Qt?
O que preciso para comecar?
Traduzindo a Aplicacao
a` Programacao
C++ com Qt 4 (96/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Qt
Implantando uma aplicacao
Qt (com compilacao
dinamica)
Uma aplicacao
usualmente necessitara da seguinte estrutura:
Arquivo executavel
da aplicacao.
Diretorio
sqldrivers: com os plugins do Qt de drivers para
a bancos de dados.
conexao
ambiente temporarias
e executar o arquivo executavel.
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (97/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Qt
Implantando uma aplicacao
exemplo, Agenda de Telefones:
No caso da aplicacao
Arquivo executavel:
agenda-telefonica
Arquivos .qm: agenda-telefonica.qm
Arquivos de bibliotecas do Qt: libQtCore.so.4, libQtSql.so.4,
libQtGui.so.4, libQtNetwork.so.4
Diretorio
sqldrivers: com o plugin libqsqlite.so
Arquivo .sh: agenda-telefonica.sh
Icones: agenda-telefonica.png e uninstall.png
a` Programacao
C++ com Qt 4 (98/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Qt
Implantando uma aplicacao
Existem varias
formas possveis de construir um pacote de
de uma aplicacao
Qt. Algumas delas sao:
implantacao
de pacotes especficos de
Pacotes .rpm, .deb, .tgz: a criacao
linux e uma das formas mais comuns e tende a
distribuicoes
de formalidade no mundo linux.
transmitir um que
sao
muito utilizados, mas
Pacotes de codigo
fonte: tambem
mais simples
Instaladores executaveis:
tende a ser a opcao
para usuarios
e agrada bastante a quem ja esta acostumado
com instaladores no Windows.
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (99/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Qt
Implantando uma aplicacao
cutaveis,
mais precisamente criados com o installJammer.
Como um dos aspectos importantes em desenvolver com
Qt e a capacidade de desenvolver sistemas multiplatafor
mas, e interessante utilizar uma ferramenta de instalacao
multiplataforma. Esta e uma caracterstica do installJammer.
a` Programacao
C++ com Qt 4 (100/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Criando o instalador
a` Programacao
C++ com Qt 4 (101/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Criando o instalador
a` Programacao
C++ com Qt 4 (102/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Criando o instalador
a` Programacao
C++ com Qt 4 (103/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Criando o instalador
a` Programacao
C++ com Qt 4 (104/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Criando o instalador
a` Programacao
C++ com Qt 4 (105/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Criando o instalador
a` Programacao
C++ com Qt 4 (106/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Criando o instalador
a` Programacao
C++ com Qt 4 (107/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Criando o instalador
a` Programacao
C++ com Qt 4 (108/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Criando o instalador
passar pelas telas do assistente de criacao
de projeto do
Apos
a` Programacao
C++ com Qt 4 (109/112)
Introducao
Parte Teorica
Traduzindo a Aplicacao
Criando o instalador
Em Action Groups FinishActions :
InstallDesktopShortcut IconPath :
<%InstallDir%>agenda-telefonica.png
Install Quick Launch Shortcut IconPath :
<%InstallDir%>agenda-telefonica.png
Build Install.
Para criar o instalador, basta executar a opcao
a` Programacao
C++ com Qt 4 (110/112)
Introducao
Parte Teorica
Resumo
Referencias
ao Qt.
Introducao
C++ com Qt.
Como iniciar um projeto de aplicacao
Como realizar o projeto de telas com Qt Designer.
de signals e slots.
Como criar mecanismos de controle atraves
Qt.
Como trabalhar com banco de dados em uma aplicacao
Qt para outra lngua.
Como traduzir uma aplicacao
a` Programacao
C++ com Qt 4 (111/112)
Introducao
Parte Teorica
Resumo
Referencias
ao Qt.
Introducao
C++ com Qt.
Como iniciar um projeto de aplicacao
Como realizar o projeto de telas com Qt Designer.
de signals e slots.
Como criar mecanismos de controle atraves
Qt.
Como trabalhar com banco de dados em uma aplicacao
Qt para outra lngua.
Como traduzir uma aplicacao
a` Programacao
C++ com Qt 4 (111/112)
Introducao
Parte Teorica
Resumo
Referencias
ao Qt.
Introducao
C++ com Qt.
Como iniciar um projeto de aplicacao
Como realizar o projeto de telas com Qt Designer.
de signals e slots.
Como criar mecanismos de controle atraves
Qt.
Como trabalhar com banco de dados em uma aplicacao
Qt para outra lngua.
Como traduzir uma aplicacao
a` Programacao
C++ com Qt 4 (111/112)
Introducao
Parte Teorica
Resumo
Referencias
ao Qt.
Introducao
C++ com Qt.
Como iniciar um projeto de aplicacao
Como realizar o projeto de telas com Qt Designer.
de signals e slots.
Como criar mecanismos de controle atraves
Qt.
Como trabalhar com banco de dados em uma aplicacao
Qt para outra lngua.
Como traduzir uma aplicacao
a` Programacao
C++ com Qt 4 (111/112)
Introducao
Parte Teorica
Resumo
Referencias
ao Qt.
Introducao
C++ com Qt.
Como iniciar um projeto de aplicacao
Como realizar o projeto de telas com Qt Designer.
de signals e slots.
Como criar mecanismos de controle atraves
Qt.
Como trabalhar com banco de dados em uma aplicacao
Qt para outra lngua.
Como traduzir uma aplicacao
a` Programacao
C++ com Qt 4 (111/112)
Introducao
Parte Teorica
Resumo
Referencias
ao Qt.
Introducao
C++ com Qt.
Como iniciar um projeto de aplicacao
Como realizar o projeto de telas com Qt Designer.
de signals e slots.
Como criar mecanismos de controle atraves
Qt.
Como trabalhar com banco de dados em uma aplicacao
Qt para outra lngua.
Como traduzir uma aplicacao
a` Programacao
C++ com Qt 4 (111/112)
Introducao
Parte Teorica
Resumo
Referencias
ao Qt.
Introducao
C++ com Qt.
Como iniciar um projeto de aplicacao
Como realizar o projeto de telas com Qt Designer.
de signals e slots.
Como criar mecanismos de controle atraves
Qt.
Como trabalhar com banco de dados em uma aplicacao
Qt para outra lngua.
Como traduzir uma aplicacao
a` Programacao
C++ com Qt 4 (111/112)
Introducao
Parte Teorica
Resumo
Referencias
ao Qt.
Introducao
C++ com Qt.
Como iniciar um projeto de aplicacao
Como realizar o projeto de telas com Qt Designer.
de signals e slots.
Como criar mecanismos de controle atraves
Qt.
Como trabalhar com banco de dados em uma aplicacao
Qt para outra lngua.
Como traduzir uma aplicacao
a` Programacao
C++ com Qt 4 (111/112)
Introducao
Parte Teorica
Resumo
Referencias
Referencias
J. Blanchette and M. Summerfield.
C++ GUI Programming with Qt 4.
Prentice Hall, 2008.
do Qt 4.5
Documentacao
http://qt.nokia.com/doc/4.5/index.html
Pagina
do InstallJammer
http://www.installjammer.com
IDE Kevora
http://kevora.sourceforge.net
Antonio Marcio A. Menezes
a` Programacao
C++ com Qt 4 (112/112)
Introducao