140 likes | 370 Views
Desarrollo multiplataforma con wxWindows (wxWidgets). Rodrigo Loyola A. Introducción. wxWidgets es un framework para C++ y Python que permite el desarrollo de aplicaciones con interfaces gráficas de manera rápida y sencilla.
E N D
Desarrollo multiplataforma con wxWindows (wxWidgets) Rodrigo Loyola A.
Introducción • wxWidgets es un framework para C++ y Python que permite el desarrollo de aplicaciones con interfaces gráficas de manera rápida y sencilla. • Además del desarrollo de GUI’s, wxWidgets consta de otras funcionalidades extras como conexión a redes, salida a impresora, representación HTML entre otras.
Instalación • Se puede descargar los archivos de instalación desde http://www.wxwindows.org/ o para los usuarios de debian ejecutar desde consola: $ apt-get install wxwin2.4-doc wxwin2.4-examples wxwin2.4-headers wxwin2.4-i18n
Características • En la actualidad soporta las siguientes plataformas: • MS Windows 3.1/95/98/NT/2000/XP • UNIX con Motif • UNIX con GTK+ • MacOS • wxWidgets intenta usar los controles nativos en cada plataforma, de este modo se logra un aspecto homogeneo en cada plataforma.
Características • Es gratis, wxWidgets se distribuye bajo licencia wxWindows Library License, que es similar a la GNU Library General Public License con la diferencia que permite crear aplicaciones comerciales, siempre y cuando estas no contengan código GNU.
Características • Es compatible con los compiladores más populares. • Incluye Tex2RTF, que permite producir su propia documentación en formato Windows Help, HTML y Word RTF. • Incluye clases para visualizar archivos HTML y para la creacion o manipulación de imágenes, enter otros.
Multiplataforma • Algunos de los problemas de escribir una aplicación multiplataforma es que los tipos basicos de C no son los mismos, puede variar el largo de bit o bien pueden ser little endian o big endian. wxWidgets define algunos tipos de datos estándar: wxInt32, wxInt16, wxInt8, wxUint32, wxUint16 = wxWord, wxUint8 = wxByte
Cabezeras • Las cabezeras de los archivos tienen la siguiente estructura: // Para los compiladores que soporten .h precompilados "wx.h". #include <wx/wxprec.h> #ifdef __BORLANDC__ #pragma hdrstop #endif // Para todos los demas #ifndef WX_PRECOMP #include <wx/wx.h> #endif
Cabezeras • Esta es la estructura mínima que debe tener la cabezera para cualquier aplicación basada en wxWidgets, para algunos casos especiales se deben incluir otras cabezeras, por ejemplo: • #include "wx/image.h“ • #include "wx/wxhtml.h“ • #include "wx/fs_zip.h“ • etc
Clases • wxWidgets provee muchas clases para distintos usos, entre las cuales se destacan: • wxHTML: esta clase permite la visualización y manipulación de archivos HTML sencillos, permitiendo la definición de tags personalizados aumentando la interacción con los archivos HTML.
Clases • wxImage: permite cargar y crear varios formatos de imagen diferente, entre los cuales están: TIFF, JPEG, BMP, GIF (solo para la visualización), PNG, PCX, PNM e ICO. • wxArray: Permite el uso y creación de arreglos dinamicos • wxDatabase: permite el manejo de bases de datos, por ejemplo la conexión y el cierre de estas.
Clases • wxEvent: permite el manejo de eventos, es similar a los eventos de java. • wxFile • wxProtocol • wxFTP • wxHTTP • wxJoystick • wxLocale • Mas en http://www.wxwindows.org/manuals/2.6.1/wx_classref.html#classref
Programación • Los principales aspectos que se deben tener en cuenta a la hora de utilizar wxWidgets son: • Toda aplicación debe derivar de la clase wxApp. • Se define el método OnInit() el cual actua como el método main de java • Las ventanas deben derivar de la clase wxFrame
Compilación • Para compilar en linux se debe utilizar el compilador gcc de la siguiente manera: # gcc -c `wx-config --cflags` archivo.cpp # gcc `wx-config --libs` -o ejecutablearchivo.o • Ojo que los tilde son hacia la derecha • Para una mejor comprensión un ejemplo