Por que aprender aqui?
Desde 1992 no mercado de C++, somos a primeira empresa no Brasil a investir fortemente no avanço da linguagem no país.
Nossas aulas são ministradas por nossos desenvolvedores de sistemas para tornar nosso método de ensino o mais real e esclarecedor possível. Nosso maior interesse é que todos possam realmente aprender com nossos cursos e aumentar ainda mais a comunidade C/C++ no Brasil.
Nosso curso é indicado para
Para todos os programadores C++ que buscam uma melhor performace e redução de tempo ao escrever seus códigos. Com esse curso você estará apto a criação de aplicações completas para diferentes plataformas com um único código fonte.
Iremos abordar assuntos como a interface gráfica de usuário, tratamento de eventos, recursos de I/O, multithreading (em baixo e alto nível), comunicação entre processos, TCP/IP (network), banco de dados (SQL), XML, WEB.
Pré-requisito: Para esse curso é fundamental que o participante programe em C++ ou tenha conhecimento equivalente ao nosso curso de linguagem C++.
Você receberá: Apostila produzida pela Agit Informática (PDF) contendo aproximadamente 300 páginas, todos os códigos fontes dos exercícios feitos em aula e materiais adicionais para estudo.
Carga horária: Total de 32 aulas de 2h (64h) e atividades extra classe para o aluno resolver os exercícios offline.
Conteúdo programático
Recentemente o curso recebeu uma atualização e passou a ter 64h.
Introdução
- Visão geral de Qt (plataformas a que se destina, áreas de aplicação cobertas, uso no mercado, licenciamento, etc;
- Usando o Qt Assistant (documentação do Qt);
- Ferramentas para compilação;
- Conhecendo o Qt Creator (IDE multiplataforma usada para desenvolver aplicações Qt);
- Organização da biblioteca: módulos de Qt e sua hierarquia de classes C++;
- Adicionando e excluindo módulos;
- Construindo aplicações sem interface gráfica;
- Construindo bibliotecas estáticas e dinâmicas;
- Relacionamento entre objetos: a classe QObject e o relacionamento parent/child;
- Mecanismos para tratamento de eventos: a) o mecanismo de signals e slots; sinalizações síncrona e assíncrona, b) funções virtuais.
Interface Gráfica de Usuário
- Noções gerais sobre os recursos oferecidos por Qt para a criação de interfaces gráficas, conceito de Widget;
- Desenhando interfaces com o Qt Designer;
- Construindo Widgets no código: gerenciamento de geometria (classes QLayout, QBoxLayout, QHBoxLayout, QVBoxLayout, QFormLayout, QGridLayout, QStackedLayout), particularidades no tratamento de eventos em aplicações de interface gráfica;
- Exemplos e exercícios com as classes comuns (pré-definidas) de Widgets (QWidget, QLabel, QLineEdit, QTextEdit, QPushButton, QCheckBox, QRadioButton, QComboBox, QGroupBox, QFrame, etc);
- Personalizando Widgets;
- Diálogos: diálogos personalizados (classe QDialog) e diálogos pré-definidos(classes QColorDialog, QFileDialog, QFontDialog, QInputDialog, QMessageBox,QErrorMessage, QPrintDialog, QPrintPreviewDialog, QProgressDialog, QWizard);
- Interfaces com janelas alternáveis através de "abas" (QTabWidget);
- Janelas com menu, toolbar e statusbar (classes QMainWindow, QAction, QMenuBar, QMenu, QToolBar, QStatusBar); interface SDI, usando essas classes;
- Interface MDI (classe QMdiArea, além das classes do item anterior); MDI nos formatos subwindows e tabbed windows (com "abas");
- Adicionando Splitters com QSplitter;
- Arquitetura Model/View (classes QListView, QTableView, , QTreeView) e classes de atalho ou de "conveniência" (QListWidget, QTableWidget, QTreeWidget);
- Desenho e tratamento de imagem básicos (função virtual paintEvent e classes QPainter, QPaintEngine, QPaintDevice, QImage, QPixmap, QMovie);
- Impressão: (classes QPrinter, QPrintDialog).
Arquivos
- Manipulação básica de arquivos (classes QIODevice, QFile, QBuffer);
- Manipulando o sistema de arquivos (classes QFileSystemModel, QFileSystemWatcher).
Multithreading e comunicação entre processos
- Entendendo o que é multithreading;
- Entendendo os conceitos e recursos de sincronização entre diferentes threads, como mutexes, semáforos e variáveis de condição;
- Multthreading em baixo nível com Qt(classes QThread, QThreadStorage, QMutex, QSemaphore, QWaitCondition);
- Multthreading em alto nível com Qt(classes sob o namespace QtConcurrent no módulo QtCore);
- Prevenindo problemas comuns de sincronização em aplicações multithreading;
- A classe QProcess.
Network (usando TCP/IP)
- Entendendo o que são sockets;
- As classes QAbstractSocket, QTcpSocket, QTcpServer, QUdpSocket;
- Conhecendo a API Network Access para executar operações comuns de rede em alto nível (HTTP e FTP).
Banco de Dados (SQL)
- Conceitos básicos;
- Classes QSqlDatabase, QSqlDriver, QSqlQuery, QSqlRecord, etc;
- Recursos para acesso a banco de dados em interfaces gráficas de usuário, utilizando a arquitetura model/view com a ajuda das classes QSqlQueryModel, QSqlTableModel, QsqlRelationalTableModel.
XML
- Principais classes do módulo QtXml, como QDomDocument, QXmlStreamReader, QXmlStreamWriter, QXmlSimpleReader e outras.
Criando Web Browser:
- Utilizando um web browser em uma aplicação;
- Utilizando a WebEngine para acessar páginas Web.
Por que aprender Qt?
Qt é uma biblioteca C++ multiplataforma que acrescenta recursos que a biblioteca padrão de C++ não oferece. Por exemplo: banco de dados, TCP/IP, interface gráfica e muito mais.
Qt pode ser usada com vários ambientes de desenvolvimento (IDE) que integram editor de textos, compilador, depurador, etc. Por exemplo: Visual C++ e o Eclipse. Mas, ao instalar Qt, você pode também instalar o Qt Creator, que é uma IDE que integra também a ajuda ("help") da biblioteca Qt.
Qt também é multiplataforma, o que possibilita construir aplicações tanto para Windows, Linux, Mac e embarcados. Utilizamos Qt diariamente, tanto em nossos projetos (para clientes) como em nossas aulas.
Se você almeja conquistar um destaque em sua carreira como programador C++ - Utilize o Qt como sua "caixa de ferramentas".