SlideShare uma empresa Scribd logo
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;

Mais conteúdo relacionado

Mais procurados

Apostila Arduino Basico
Apostila Arduino BasicoApostila Arduino Basico
Apostila Arduino Basico
Fernando Palma
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
Cisco DevNet
 
Object Pascal Clean Code Guidelines Proposal (at EKON 22)
Object Pascal Clean Code Guidelines Proposal (at EKON 22)Object Pascal Clean Code Guidelines Proposal (at EKON 22)
Object Pascal Clean Code Guidelines Proposal (at EKON 22)
Arnaud Bouchez
 
Apostila de sql basico
Apostila de sql basicoApostila de sql basico
Apostila de sql basicoFernando Palma
 
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Leinylson Fontinele
 
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoCurso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Tiago Antônio da Silva
 
Sistema Integrado de Gestão Empresarial - ERP
Sistema Integrado de Gestão Empresarial - ERPSistema Integrado de Gestão Empresarial - ERP
Sistema Integrado de Gestão Empresarial - ERP
mlima72
 
Drivers de Dispositivos Linux
Drivers de Dispositivos LinuxDrivers de Dispositivos Linux
Drivers de Dispositivos Linux
Hudson Augusto
 
Bpm apresentação
Bpm apresentaçãoBpm apresentação
Bpm apresentaçãoUnicerp
 
Arquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introduçãoArquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introdução
Morvana Bonin
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Marcelo Silva
 
Departamentalização
DepartamentalizaçãoDepartamentalização
Departamentalizaçãoadmgeralfatec
 
engenharia-de-requisitos
engenharia-de-requisitosengenharia-de-requisitos
engenharia-de-requisitos
Fábio Nogueira de Lucena
 
Plano Diretor de Tecnologia da Informação
Plano Diretor de Tecnologia da InformaçãoPlano Diretor de Tecnologia da Informação
Plano Diretor de Tecnologia da InformaçãoHelio Rebouças
 
Saa s software como serviço (slides)
Saa s   software como serviço (slides)Saa s   software como serviço (slides)
Saa s software como serviço (slides)Daniela Nunes
 
Governança de TI - Aula 6 - intro cobit
Governança de TI - Aula 6 - intro cobitGovernança de TI - Aula 6 - intro cobit
Governança de TI - Aula 6 - intro cobit
CEULJI/ULBRA Centro Universitário Luterano de Ji-Paraná
 
Indicadores de gestao de estoque
Indicadores de gestao de estoqueIndicadores de gestao de estoque
Indicadores de gestao de estoque
Wagner Garcia.´.
 
Logística Reversa de Pós – Vendas dos Correios
Logística Reversa de Pós – Vendas dos CorreiosLogística Reversa de Pós – Vendas dos Correios
Logística Reversa de Pós – Vendas dos Correios
Danilo Rangel Soares
 
Administração da Produção - Supply Chain e Logistica
Administração da Produção - Supply Chain e LogisticaAdministração da Produção - Supply Chain e Logistica
Administração da Produção - Supply Chain e Logistica
douglas
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
Suzana Viana Mota
 

Mais procurados (20)

Apostila Arduino Basico
Apostila Arduino BasicoApostila Arduino Basico
Apostila Arduino Basico
 
An introduction to Microservices
An introduction to MicroservicesAn introduction to Microservices
An introduction to Microservices
 
Object Pascal Clean Code Guidelines Proposal (at EKON 22)
Object Pascal Clean Code Guidelines Proposal (at EKON 22)Object Pascal Clean Code Guidelines Proposal (at EKON 22)
Object Pascal Clean Code Guidelines Proposal (at EKON 22)
 
Apostila de sql basico
Apostila de sql basicoApostila de sql basico
Apostila de sql basico
 
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
Introdução à computação - Aula 11 - Banco de Dados (Definições gerais, SGBD)
 
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e VídeoCurso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
Curso HTML 5 - Aula com Formulários, Imagens, Áudio e Vídeo
 
Sistema Integrado de Gestão Empresarial - ERP
Sistema Integrado de Gestão Empresarial - ERPSistema Integrado de Gestão Empresarial - ERP
Sistema Integrado de Gestão Empresarial - ERP
 
Drivers de Dispositivos Linux
Drivers de Dispositivos LinuxDrivers de Dispositivos Linux
Drivers de Dispositivos Linux
 
Bpm apresentação
Bpm apresentaçãoBpm apresentação
Bpm apresentação
 
Arquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introduçãoArquitetura Hexagonal: uma introdução
Arquitetura Hexagonal: uma introdução
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdf
 
Departamentalização
DepartamentalizaçãoDepartamentalização
Departamentalização
 
engenharia-de-requisitos
engenharia-de-requisitosengenharia-de-requisitos
engenharia-de-requisitos
 
Plano Diretor de Tecnologia da Informação
Plano Diretor de Tecnologia da InformaçãoPlano Diretor de Tecnologia da Informação
Plano Diretor de Tecnologia da Informação
 
Saa s software como serviço (slides)
Saa s   software como serviço (slides)Saa s   software como serviço (slides)
Saa s software como serviço (slides)
 
Governança de TI - Aula 6 - intro cobit
Governança de TI - Aula 6 - intro cobitGovernança de TI - Aula 6 - intro cobit
Governança de TI - Aula 6 - intro cobit
 
Indicadores de gestao de estoque
Indicadores de gestao de estoqueIndicadores de gestao de estoque
Indicadores de gestao de estoque
 
Logística Reversa de Pós – Vendas dos Correios
Logística Reversa de Pós – Vendas dos CorreiosLogística Reversa de Pós – Vendas dos Correios
Logística Reversa de Pós – Vendas dos Correios
 
Administração da Produção - Supply Chain e Logistica
Administração da Produção - Supply Chain e LogisticaAdministração da Produção - Supply Chain e Logistica
Administração da Produção - Supply Chain e Logistica
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 

Semelhante a Minicurso wxWidgets

Apresentação wxWidgets
Apresentação wxWidgetsApresentação wxWidgets
Apresentação wxWidgets
Renzo 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 Software
Danilo 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 Java
Waldir 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 desempenho
Patrick Monteiro
 
Introdução a Arquitetura Android
Introdução a Arquitetura AndroidIntrodução a Arquitetura Android
Introdução a Arquitetura Android
Maycon Viana Bordin
 
Software livre - Parte 3
Software livre - Parte 3Software livre - Parte 3
Software livre - Parte 3
Fabrício Basto
 
Quasar Framework - Uma visão Geral
Quasar Framework - Uma visão GeralQuasar Framework - Uma visão Geral
Quasar Framework - Uma visão Geral
Patrick Monteiro
 
Projetos Mono e Moonlight
Projetos Mono e MoonlightProjetos Mono e Moonlight
Projetos Mono e Moonlight
Pedro Alves Jr.
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
Ana Dolores Lima Dias
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Android
jgbirk
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
CDS
 
Microsoft opensource
Microsoft opensourceMicrosoft opensource
Microsoft opensource
CDS
 
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
 
Android
AndroidAndroid

Semelhante a 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