SlideShare una empresa de Scribd logo
1 de 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;

Más contenido relacionado

La actualidad más candente

Software development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiuSoftware development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiuArm
 
Protocolo MQTT: Message Queuing Telemetry Transport
Protocolo MQTT: Message Queuing Telemetry TransportProtocolo MQTT: Message Queuing Telemetry Transport
Protocolo MQTT: Message Queuing Telemetry TransportNorberto Enomoto
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Natanael Fonseca
 
apresentação base de dados
apresentação base de dadosapresentação base de dados
apresentação base de dadoszorzelouro
 
Introduction to armv8 aarch64
Introduction to armv8 aarch64Introduction to armv8 aarch64
Introduction to armv8 aarch64Yi-Hsiu Hsu
 
Sistema Operacional Unix.
Sistema Operacional Unix. Sistema Operacional Unix.
Sistema Operacional Unix. Fabriciofialho2
 
Microsoft solutions framework
Microsoft solutions frameworkMicrosoft solutions framework
Microsoft solutions frameworkAlbert José
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaAugusto Giles
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01thomasdacosta
 
Precision Agriculture Data Ingestion Using Kafka
Precision Agriculture Data Ingestion Using KafkaPrecision Agriculture Data Ingestion Using Kafka
Precision Agriculture Data Ingestion Using Kafkasriram30691
 
Introdução a Sistemas Embarcados com Arduino - mini-curso
Introdução a Sistemas Embarcados com Arduino - mini-cursoIntrodução a Sistemas Embarcados com Arduino - mini-curso
Introdução a Sistemas Embarcados com Arduino - mini-cursoFelipe Martins
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadoresJakson Silva
 
PESQUISA SOBRE BARRAMENTO
PESQUISA SOBRE BARRAMENTOPESQUISA SOBRE BARRAMENTO
PESQUISA SOBRE BARRAMENTOOtaviano Viana
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controleProfessor Samuel Ribeiro
 
Sistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/LinuxSistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/LinuxLuiz Arthur
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linuxPeslPinguim
 
Visibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UMLVisibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UMLufpb
 

La actualidad más candente (20)

Linux commands
Linux commandsLinux commands
Linux commands
 
Embedded C programming session10
Embedded C programming  session10Embedded C programming  session10
Embedded C programming session10
 
Software development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiuSoftware development in ar mv8 m architecture - yiu
Software development in ar mv8 m architecture - yiu
 
Protocolo MQTT: Message Queuing Telemetry Transport
Protocolo MQTT: Message Queuing Telemetry TransportProtocolo MQTT: Message Queuing Telemetry Transport
Protocolo MQTT: Message Queuing Telemetry Transport
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
apresentação base de dados
apresentação base de dadosapresentação base de dados
apresentação base de dados
 
Introduction to armv8 aarch64
Introduction to armv8 aarch64Introduction to armv8 aarch64
Introduction to armv8 aarch64
 
Redes de Computadores
Redes de ComputadoresRedes de Computadores
Redes de Computadores
 
Sistema Operacional Unix.
Sistema Operacional Unix. Sistema Operacional Unix.
Sistema Operacional Unix.
 
Microsoft solutions framework
Microsoft solutions frameworkMicrosoft solutions framework
Microsoft solutions framework
 
NoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas MonografiaNoSQL Familia de Colunas Monografia
NoSQL Familia de Colunas Monografia
 
Redes de Computadores - Aula 01
Redes de Computadores - Aula 01Redes de Computadores - Aula 01
Redes de Computadores - Aula 01
 
Precision Agriculture Data Ingestion Using Kafka
Precision Agriculture Data Ingestion Using KafkaPrecision Agriculture Data Ingestion Using Kafka
Precision Agriculture Data Ingestion Using Kafka
 
Introdução a Sistemas Embarcados com Arduino - mini-curso
Introdução a Sistemas Embarcados com Arduino - mini-cursoIntrodução a Sistemas Embarcados com Arduino - mini-curso
Introdução a Sistemas Embarcados com Arduino - mini-curso
 
Redes de computadores
Redes de computadoresRedes de computadores
Redes de computadores
 
PESQUISA SOBRE BARRAMENTO
PESQUISA SOBRE BARRAMENTOPESQUISA SOBRE BARRAMENTO
PESQUISA SOBRE BARRAMENTO
 
Java básico - Módulo 04: Estruturas de controle
Java   básico - Módulo 04:  Estruturas de controleJava   básico - Módulo 04:  Estruturas de controle
Java básico - Módulo 04: Estruturas de controle
 
Sistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/LinuxSistemas Operacionais - Gnu/Linux
Sistemas Operacionais - Gnu/Linux
 
Comandos do linux
Comandos do linuxComandos do linux
Comandos do linux
 
Visibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UMLVisibilidade e Diagrama de Classe de Projeto na UML
Visibilidade e Diagrama de Classe de Projeto na UML
 

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

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