SlideShare une entreprise Scribd logo
1  sur  77
Programação Orientada a Eventos com o ambiente wxWidgets RENZO AUGUSTO L. PETRI 	renzo_petri@hotmail.com	 ANTONIO M. G. TOMMASELLI tomaseli@fct.unesp.br MINICURSO XVII SAGEC
Roteiro ,[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)
Programação Orientada a Eventos ,[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]
Evento ,[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 Platform for development of GUI(Graphical User Interface ) toolkits.
wxWidgets – O que é ? ,[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]
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]
(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;

Contenu connexe

Tendances

Qualificação Profissional
Qualificação ProfissionalQualificação Profissional
Qualificação ProfissionalOsvaldo Machado
 
ct image quality
ct image qualityct image quality
ct image qualitydypradio
 
Pacs introduction
Pacs introductionPacs introduction
Pacs introductionL1nhnguyen
 
Banco de Dados - Part01
Banco de Dados - Part01Banco de Dados - Part01
Banco de Dados - Part01Rangel Javier
 
Prof magno formação da imagem
Prof magno   formação da imagemProf magno   formação da imagem
Prof magno formação da imagemCristiane Dias
 
Análise econômica do setor de bicicletas no Brasil
Análise econômica do setor de bicicletas no BrasilAnálise econômica do setor de bicicletas no Brasil
Análise econômica do setor de bicicletas no BrasilMarcelo Felipozzi
 
Renderização de volume aplicado a angiotomografia (atual)
Renderização de volume aplicado a angiotomografia (atual)Renderização de volume aplicado a angiotomografia (atual)
Renderização de volume aplicado a angiotomografia (atual)Fabiano Ladislau
 
Aula 1 - histórico e aspectos físicos
Aula 1 - histórico e aspectos físicosAula 1 - histórico e aspectos físicos
Aula 1 - histórico e aspectos físicosPedro Antonio
 
Equipamentos e acessorios rcvm
Equipamentos e acessorios   rcvmEquipamentos e acessorios   rcvm
Equipamentos e acessorios rcvmRenata Cristina
 
Aula 01 - Recuperação da Informação
Aula 01 - Recuperação da InformaçãoAula 01 - Recuperação da Informação
Aula 01 - Recuperação da InformaçãoNilton Heck
 
Digital breast tomosynthesis
Digital breast tomosynthesisDigital breast tomosynthesis
Digital breast tomosynthesisMAMTA PANDA
 
Scanning systems, CT Scan
Scanning systems, CT Scan Scanning systems, CT Scan
Scanning systems, CT Scan Izzad Samir
 
Maximum intensity projection (mip) (2)
Maximum intensity projection (mip) (2)Maximum intensity projection (mip) (2)
Maximum intensity projection (mip) (2)hazem youssef
 
C3 sílabo servicio de control simultaneao
C3 sílabo servicio de control simultaneaoC3 sílabo servicio de control simultaneao
C3 sílabo servicio de control simultaneaoedertito2
 
PERFORMANCE EVALUATION OF COMPUTED TOMOGRAPHY (CT) SCANNERS
PERFORMANCE EVALUATION OF COMPUTED TOMOGRAPHY (CT) SCANNERSPERFORMANCE EVALUATION OF COMPUTED TOMOGRAPHY (CT) SCANNERS
PERFORMANCE EVALUATION OF COMPUTED TOMOGRAPHY (CT) SCANNERSBhuvi palaniswamy
 

Tendances (20)

Qualificação Profissional
Qualificação ProfissionalQualificação Profissional
Qualificação Profissional
 
ct image quality
ct image qualityct image quality
ct image quality
 
Principios da radiologia
Principios da radiologiaPrincipios da radiologia
Principios da radiologia
 
Pacs introduction
Pacs introductionPacs introduction
Pacs introduction
 
Banco de Dados - Part01
Banco de Dados - Part01Banco de Dados - Part01
Banco de Dados - Part01
 
Prof magno formação da imagem
Prof magno   formação da imagemProf magno   formação da imagem
Prof magno formação da imagem
 
ISO 38500 Visão Geral
ISO 38500   Visão GeralISO 38500   Visão Geral
ISO 38500 Visão Geral
 
Análise econômica do setor de bicicletas no Brasil
Análise econômica do setor de bicicletas no BrasilAnálise econômica do setor de bicicletas no Brasil
Análise econômica do setor de bicicletas no Brasil
 
Renderização de volume aplicado a angiotomografia (atual)
Renderização de volume aplicado a angiotomografia (atual)Renderização de volume aplicado a angiotomografia (atual)
Renderização de volume aplicado a angiotomografia (atual)
 
Aula 1 - histórico e aspectos físicos
Aula 1 - histórico e aspectos físicosAula 1 - histórico e aspectos físicos
Aula 1 - histórico e aspectos físicos
 
Equipamentos e acessorios rcvm
Equipamentos e acessorios   rcvmEquipamentos e acessorios   rcvm
Equipamentos e acessorios rcvm
 
Kub anatomy
Kub anatomyKub anatomy
Kub anatomy
 
Digital xray
Digital xrayDigital xray
Digital xray
 
Aula 01 - Recuperação da Informação
Aula 01 - Recuperação da InformaçãoAula 01 - Recuperação da Informação
Aula 01 - Recuperação da Informação
 
Digital breast tomosynthesis
Digital breast tomosynthesisDigital breast tomosynthesis
Digital breast tomosynthesis
 
Scanning systems, CT Scan
Scanning systems, CT Scan Scanning systems, CT Scan
Scanning systems, CT Scan
 
Maximum intensity projection (mip) (2)
Maximum intensity projection (mip) (2)Maximum intensity projection (mip) (2)
Maximum intensity projection (mip) (2)
 
C3 sílabo servicio de control simultaneao
C3 sílabo servicio de control simultaneaoC3 sílabo servicio de control simultaneao
C3 sílabo servicio de control simultaneao
 
Aula 2.2. Minicurso de ECM
Aula 2.2. Minicurso de ECMAula 2.2. Minicurso de ECM
Aula 2.2. Minicurso de ECM
 
PERFORMANCE EVALUATION OF COMPUTED TOMOGRAPHY (CT) SCANNERS
PERFORMANCE EVALUATION OF COMPUTED TOMOGRAPHY (CT) SCANNERSPERFORMANCE EVALUATION OF COMPUTED TOMOGRAPHY (CT) SCANNERS
PERFORMANCE EVALUATION OF COMPUTED TOMOGRAPHY (CT) SCANNERS
 

Similaire à Programação Orientada a Eventos com 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
 

Similaire à Programação Orientada a Eventos com 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
 

Programação Orientada a Eventos com wxWidgets