SlideShare a Scribd company logo
1 of 77
Programação Orientada a Eventos com o ambiente wxWidgets,[object Object],RENZO AUGUSTO L. PETRI,[object Object],	renzo_petri@hotmail.com	,[object Object],ANTONIO M. G. TOMMASELLI,[object Object],tomaseli@fct.unesp.br,[object Object],MINICURSO,[object Object],XVII SAGEC,[object Object]
Roteiro,[object Object],[object Object]
Introdução ao wxWidgets;
Introdução ao GUI wxDEV C++;
Introdução a FreeImage;
Exemplos e desenvolvimento de uma ferramenta interativa ;,[object Object]
Processos de desenvolvimento de software;
Documentação;
Análise;
O OBJETIVO do curso é o wxWidgetsem  C/C++.,[object Object]
Existe um curso on-line de C da UFMG em :
http://www.ead.cpdee.ufmg.br/cursos/C/
Conceitos de Orientação a Objetos e Eventos;
O wxWidgets é orientado a objetos.,[object Object]
Programação Orientada a Eventos (POE),[object Object]
Programação Orientada a Eventos,[object Object],[object Object]
 Diferente de programas tradicionais que seguem um fluxo de controle padronizado, o controle de fluxo de programas orientados a evento são guiados por indicações externas, chamadas eventos;
 Sua aplicação é grande no desenvolvimento de sistemas de interface com o usuário.,[object Object]
Minicurso wxWidgets
Evento,[object Object],[object Object]
Eventos de Mouse:
Clicar, arrastar, selecionar ...;
Eventos de Teclado:
Digitar, ...;
Outros;,[object Object]
Programas orientados a evento geralmente consistem em vários pequenos tratadores (handler), programas que processam os eventos para produzir respostas, e um disparador (dispatcher), que invoca os pequenos tratadores. Uma alternativa consiste em disparar os tratadores por eles próprios, criando um efeito de evento em cascata.
Programas com interface com o usuário geralmente utilizam tal paradigma;
Sistemas operacionais também são outro exemplo de programas que utilizam programação orientada a eventos, este em dois níveis;
Um interpretador de comandos pode ser visto como um caso especial de modelo orientado a eventos, no qual o sistema, até então inativo, espera um comando para ser disparado através das instruções do usuário;,[object Object]
wxWidgets,[object Object],Platform for development of GUI(Graphical User Interface ) toolkits.,[object Object]
wxWidgets – O que é ?,[object Object],[object Object]
Possui vínculos com linguagens populares como C/C++, Python , Perl , Ruby e muitas outras;
 Ao contrário de outros kits de ferramentas multi-plataforma, wxWidgets dá poder as suas aplicações, pois é NATIVO;
Ele usa a API nativa da plataforma ao invés de emular a GUI;
Também é extenso, gratuito e de código aberto e maduro ;,[object Object]
A licença do wxWidgets é LGPL(GNU Lesser General PublicLicense );
Suporte à interfaces gráficas com o usuário, conexão a bancos de dados(ODBC) e Redes(conectividade por sockets);
Resumindo, WxWidgets é um toolkit, ou framework, para o desenvolvimento de aplicações multiplataforma. Permite a criação de aplicações com interfaces gráficas, em diversos sistemas operacionais (GTK+/Xlib/Motif, MSW, MAC OS X/Carbon/Cocoa, OS/2/PM, Palm OS/Protein) ;
Por que não experimentá-lo, como muitos outros ?,[object Object]
Microsoft Windows, Apple Mac OS, Linux/Unix;
A biblioteca é implementada em C++, mas outras implementações estão disponíveis para várias das linguagens de programação:
Python, Perl, Lua, C#, Basic, Ruby,Squeak, Java, JavaScript;
WxWidgets é orientado a objetos e orientado a eventos;
Por ser NATIVA , torna-se mais rápida, e com um visual melhor adaptado à plataforma, que utilitários como o Java Swing;,[object Object]
wxWidgets – História,[object Object],[object Object]
Foi escrito para usar a API nativa do Windows;
Inicialmente, começou como um projeto para a criação de aplicações portáteis em Unix e Windows;
wxWidgets  gradualmente cresceu e mais e mais usuários de todo o mundo passaram á utilizá-la:
Setores comerciais, governamentais;
Usuários da empresa que descobriram que wxWidgetsoferecido um melhor produto e que os produtos comerciais que eles tinham olhado ou usados .,[object Object]
Após muitas contribuições, o código do wxWidgets estava um pouco ultrapassado.
Em maio de 1998 a API do Windows + as portas do GTK foram fundidas e colocadas em um repositório CVS disponibilizado a todos os contribuintes para wxWidgets.
Meados de 2000 houve o lançamento dewxDesigners, ,[object Object]
Em 20 de fevereiro de 2004, os desenvolvedores do wxWindows anunciaram que o projeto estava mudando seu nome para wxWidgets, como resultado de pressões da Microsoft sobre Julian Smart para  respeitar a marca Windows. ,[object Object]
O número de programadores que contribuem para o projeto está agora nas dezenas e o toolkit tem uma forte base de usuários, que inclui todos os desenvolvedores de código aberto para empresas como a AOL;
Como a indústria repensa sua dependência da Microsoft e de código-fonte fechado produtos caros, o uso de desktop do Linux continua a crescer, e com ela a necessidade de wxWidgets;
Muitas pessoas estão descobrindo que wxWidgets é o caminho mais rápido para MFC portar suas aplicações para Linux, Unix outras variantes, e Mac. Assim, o futuro para wxWidgets é promissor;,[object Object]
wxWidgets – Requisitos,[object Object],[object Object]
(A) MS-Windows:
Arquitetura de 32 bits ou 64 bits PC executando o MS Windows;
Um compilador Windows: MS Visual C ++, Borland C ++, Watcom C ++, Cygwin, MinGW, MetrowerksCodeWarrior, Digital Mars C ++;
Pelo menos 100 MB de espaço em disco para a árvore de origem e de espaço adicional para bibliotecas e criação de aplicações (depende do compilador e construir as configurações).,[object Object]
2.	Open source;
3.	Documentação e amostras;
4.	Vasta gama de classes de controle e dejanela;
5.	Poderoso sistema de eventos;
6.	Depuração instalações;
7.	Apoio Compiler;
8.	Funcionalidade de banco de dados;
9.	Documento / classes vista;
10.	Arraste e solte(Drag AND Drop);,[object Object]
12.	Os arquivos de configuração;
13.	Multithreading;
14.	Programação de rede;
15.	Classes HTML;
16.	Integração OpenGL;
17.	Diagramming  para apoiar a aplicação;

More Related Content

What's hot

Plano de estudo manutenção de redes de computadores
Plano de estudo   manutenção de redes de computadoresPlano de estudo   manutenção de redes de computadores
Plano de estudo manutenção de redes de computadoresCarlos Melo
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)elliando dias
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemasFelipe Oliveira
 
Gerenciamento e administração de Redes
Gerenciamento e administração de RedesGerenciamento e administração de Redes
Gerenciamento e administração de RedesHelder Lopes
 
Novas Áreas de atuação do Farmacêutico
Novas Áreas de atuação do FarmacêuticoNovas Áreas de atuação do Farmacêutico
Novas Áreas de atuação do FarmacêuticoLana Delly Nascimento
 
1.1 o que é computador
1.1 o que é computador1.1 o que é computador
1.1 o que é computadorAline Soares
 
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃOINTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃOEdson Lima
 
Check list para auditoria interna
Check list para auditoria internaCheck list para auditoria interna
Check list para auditoria internaMiguel
 
Legislação farmaceutica
Legislação farmaceuticaLegislação farmaceutica
Legislação farmaceuticaSafia Naser
 
Gestão da qualidade
Gestão da qualidadeGestão da qualidade
Gestão da qualidadeCarlos Sousa
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareAragon Vieira
 
Trabalho sobre processadores
Trabalho sobre processadoresTrabalho sobre processadores
Trabalho sobre processadoresTiago
 
Introdução a Gerência de Configuração de Software
Introdução a Gerência de Configuração de SoftwareIntrodução a Gerência de Configuração de Software
Introdução a Gerência de Configuração de SoftwareCamilo Almendra
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Natanael Simões
 
Conceituando a qualidade (foco em Serviços de Saúde)
Conceituando a qualidade (foco em Serviços de Saúde)Conceituando a qualidade (foco em Serviços de Saúde)
Conceituando a qualidade (foco em Serviços de Saúde)Lucas Radicchi
 
Projeto em Seguranca da Informação
Projeto em Seguranca da InformaçãoProjeto em Seguranca da Informação
Projeto em Seguranca da InformaçãoFernando Palma
 
Modelo do Processo de Desenvolvimento de Produtos
Modelo do Processo de Desenvolvimento de ProdutosModelo do Processo de Desenvolvimento de Produtos
Modelo do Processo de Desenvolvimento de ProdutosMarcel Gois
 
Revisão geral ISO 9001
Revisão geral ISO 9001Revisão geral ISO 9001
Revisão geral ISO 9001Rogério Souza
 

What's hot (20)

Plano de estudo manutenção de redes de computadores
Plano de estudo   manutenção de redes de computadoresPlano de estudo   manutenção de redes de computadores
Plano de estudo manutenção de redes de computadores
 
Compressão Huffman
Compressão HuffmanCompressão Huffman
Compressão Huffman
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemas
 
Gerenciamento e administração de Redes
Gerenciamento e administração de RedesGerenciamento e administração de Redes
Gerenciamento e administração de Redes
 
Novas Áreas de atuação do Farmacêutico
Novas Áreas de atuação do FarmacêuticoNovas Áreas de atuação do Farmacêutico
Novas Áreas de atuação do Farmacêutico
 
1.1 o que é computador
1.1 o que é computador1.1 o que é computador
1.1 o que é computador
 
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃOINTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO
INTRODUÇÃO FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO
 
Check list para auditoria interna
Check list para auditoria internaCheck list para auditoria interna
Check list para auditoria interna
 
Legislação farmaceutica
Legislação farmaceuticaLegislação farmaceutica
Legislação farmaceutica
 
Gestão da qualidade
Gestão da qualidadeGestão da qualidade
Gestão da qualidade
 
Projeto e Desenvolvimento de Software
Projeto e Desenvolvimento de SoftwareProjeto e Desenvolvimento de Software
Projeto e Desenvolvimento de Software
 
Trabalho sobre processadores
Trabalho sobre processadoresTrabalho sobre processadores
Trabalho sobre processadores
 
Introdução a Gerência de Configuração de Software
Introdução a Gerência de Configuração de SoftwareIntrodução a Gerência de Configuração de Software
Introdução a Gerência de Configuração de Software
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1
 
Conceituando a qualidade (foco em Serviços de Saúde)
Conceituando a qualidade (foco em Serviços de Saúde)Conceituando a qualidade (foco em Serviços de Saúde)
Conceituando a qualidade (foco em Serviços de Saúde)
 
Projeto em Seguranca da Informação
Projeto em Seguranca da InformaçãoProjeto em Seguranca da Informação
Projeto em Seguranca da Informação
 
Modelo do Processo de Desenvolvimento de Produtos
Modelo do Processo de Desenvolvimento de ProdutosModelo do Processo de Desenvolvimento de Produtos
Modelo do Processo de Desenvolvimento de Produtos
 
Sistemas de Informação
Sistemas de InformaçãoSistemas de Informação
Sistemas de Informação
 
Revisão geral ISO 9001
Revisão geral ISO 9001Revisão geral ISO 9001
Revisão geral ISO 9001
 

Similar to Minicurso wxWidgets

Apresentação wxWidgets
Apresentação wxWidgetsApresentação wxWidgets
Apresentação wxWidgetsRenzo Petri
 
Desenvolvimento Web em ambiente de software livre
Desenvolvimento Web em ambiente de software livreDesenvolvimento Web em ambiente de software livre
Desenvolvimento Web em ambiente de software livrePedro Neto
 
Ferramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareFerramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareDanilo Sousa
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaWaldir R. Pires Jr
 
Quasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoQuasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoPatrick Monteiro
 
Introdução a Arquitetura Android
Introdução a Arquitetura AndroidIntrodução a Arquitetura Android
Introdução a Arquitetura AndroidMaycon Viana Bordin
 
Software livre - Parte 3
Software livre - Parte 3Software livre - Parte 3
Software livre - Parte 3Fabrício Basto
 
Quasar Framework - Uma visão Geral
Quasar Framework - Uma visão GeralQuasar Framework - Uma visão Geral
Quasar Framework - Uma visão GeralPatrick Monteiro
 
Projetos Mono e Moonlight
Projetos Mono e MoonlightProjetos Mono e Moonlight
Projetos Mono e MoonlightPedro Alves Jr.
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Androidjgbirk
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensourceCDS
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensourceCDS
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)Walanem Figueiredo
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)Ricardo Rufino
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 

Similar to Minicurso wxWidgets (20)

Apresentação wxWidgets
Apresentação wxWidgetsApresentação wxWidgets
Apresentação wxWidgets
 
Desenvolvimento Web em ambiente de software livre
Desenvolvimento Web em ambiente de software livreDesenvolvimento Web em ambiente de software livre
Desenvolvimento Web em ambiente de software livre
 
Programe seu androide
Programe seu androidePrograme seu androide
Programe seu androide
 
Programe seu androide
Programe seu androidePrograme seu androide
Programe seu androide
 
Programe seu androide
Programe seu androidePrograme seu androide
Programe seu androide
 
Ferramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de SoftwareFerramenta de Cloud Computer para apoio à Engenharia de Software
Ferramenta de Cloud Computer para apoio à Engenharia de Software
 
Desenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em JavaDesenvolvimento de Aplicações Móveis em Java
Desenvolvimento de Aplicações Móveis em Java
 
Quasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenhoQuasar Framework - Front end de alto desempenho
Quasar Framework - Front end de alto desempenho
 
Introdução a Arquitetura Android
Introdução a Arquitetura AndroidIntrodução a Arquitetura Android
Introdução a Arquitetura Android
 
Software livre - Parte 3
Software livre - Parte 3Software livre - Parte 3
Software livre - Parte 3
 
Quasar Framework - Uma visão Geral
Quasar Framework - Uma visão GeralQuasar Framework - Uma visão Geral
Quasar Framework - Uma visão Geral
 
Projetos Mono e Moonlight
Projetos Mono e MoonlightProjetos Mono e Moonlight
Projetos Mono e Moonlight
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Android
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
 
APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)APRESENTACAO WALANEM ANDROID (1)
APRESENTACAO WALANEM ANDROID (1)
 
OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)OpenDevice IoT - 2016 (LowLevel)
OpenDevice IoT - 2016 (LowLevel)
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 
Android
AndroidAndroid
Android
 

Minicurso wxWidgets