Rodrigo Loyola A.

Desarrollo multiplataforma con wxWidgets

Introducción

Julian Smart comenzó a desarrollar wxWindows en 1992 en el Artificial Intelligence Applications Institute, de la Universidad de Edimburgo. wxWindows se distribuye bajo licencia wxWindows Library License, que es similar a la GNU Library General Public License pero que además permite usar la biblioteca para desarrollos comerciales (ya sean aplicaciones o modificaciones de la propia biblioteca), siempre y cuando estos desarrollo comerciales no usen ningún código distribuido bajo alguna licencia GNU. Una característica importante de wxWindows es que intenta usar los controles nativos en cada plataforma. Si no existen controles de algún tipo en alguna plataforma, los emula (por ejemplo, el control wxSpinCtrl en Linux + GTK+). De este modo, se logra un aspecto homogéneo en cada plataforma (al contrario, por ejemplo, de lo que ocurre con las aplicaciones desarrolladas con GTK en Windows). En la actualidad, están soportadas las siguientes plataformas:

  • Windows 3.1, Windows 95/98/NT/2000/XP
  • La mayoría de las variantes de UNIX que usen Motif
  • La mayoría de las variantes de UNIX que usen GTK+
  • Mac

Además de las clases para el desarrollo de GUI’s, wx Windows consta de una parte denominada wxBase que incluye clases como wxString, clases para el manejo de archivos y directorios de manera independiente del sistema operativo, tipos de datos independientes de la arquitectura (32 o 16 bits), etc.

WxWindows tuvo que cambiar su nombre a finales de 2003 debido a una demanda de Microsoft, en la que alegaba que podría haber confusión con el nombre de sus sistemas operativos.

 

Clases

Posee funcionalidades para muchos aspectos aparte de la construcción de interfaces gráficas. Como gráficos 2D, 3D con OpenGL, Bases de Datos (ODBC), Redes, Impresión, Hilos, entre muchas otras, esto se logra mediante una gran colección de clases y macros, para saber más acerca haga click acá.

Desarrollo y compilació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
  • Para el manejo de eventosse usa la macro EVENT_TABLE

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 ejecutable archivo .o

Una información más completa se puede obtener viendo la presentación en powerpoint preparada o ver los ejemplos (holamundo.h y holamundo.cpp) que se encuentran bien comentados. También puede compilar usted midmo descargando las fuentes.

About Us | ©2005 Rodrigo Loyola