Programación c++ con CodeBlocs y wxWidgets
Introducción a la
programación con
wxWidgets y Code::Blocks
Instalación y ejemplo.
Jhon James Quintero Osorio
Jhon James Quintero Osorio
Introducción a la programación con
wxWidgets y Code::Blocks
Introducción
Existen muchas herramientas a la hora de programar aplicaciones en C++, que nos permiten construir
interfaces de usuario, una de ellas es wxWidgets, untoolkit que contiene módulos para muchas de las
necesidades, GUI’s, redes, multithread entre otros. Dos de las características de los wxWidgets que los
hacen especiales (comparados con VCL o MFC ) son:
•
•
•
•
Multiplataforma (Windows, Unix, MaxOs y otros).
plataforma.
Libres, licencia GPL.
Orientados a objetos.
Bonitos.
Adquiriendo la apariencia de la
Figura 1 Ejemplo de aplicacióncon wxWidgets
1
Jhon James Quintero Osorio
Figura 2 La estructura de los ports de wxWidgets.
Los wxWidgets están desarrollados en C++, y es posible programar con ellos usando varios
compiladores de C++, GCC, Visual C++, Borland, etc, dado que, a diferencia de otros toolkits como Qt
o VCL, estos no usan ninguna extensión de C++, usa solo C++ estándar.
En este documento se indica comotener un entorno de desarrollo libre para Windows en el que se
usarán los wxWidgets para la creación de las interfaces de usuario (o lo que se necesite).
Lo que se necesita
•
•
•
•
•
Un compilador de C++, usaremos mingw.
Los wxWidgets para Windows, aquí la versión 2.8.
wxAdditions (opcional), más widgets (scintilla, plots, led y otros).
wxFormBuilder. Constructor de interfaces parawxWidgets, versión 3.0.
Code::Blocks. Un IDE multiplataforma para programar en C/C++ (hecho con wxWidgets).
Instalando mingw
Es necesario del sitio web de mingw (usar un motor de búsqueda), bajar los siguientes instaladores:
•
•
•
•
•
•
•
binutils.
gcc-core.
mingw-runtime.
mingw-api
gcc-g++.
gdb
mingw32-make
2
Jhon James Quintero Osorio
Generalmente estos archivosson archivos con extención gz por lo cual es necesario utilizar un
programa de descompresión como winrar, winace o cualquiera que soporte este tipo de compresión.
Creamos un directorio digamos en C, llamado mingw y allí descomprimimos los archivos
mencionados.
Instalando wxWidgets (wxAdditions) y wxFormBuilder
Para instalar los wxWidgets, wxAdditions y el wxFormBuilder para Windows esposible conseguir los
instaladores individuales, sin embargo existe un instalador que contiene todo lo anterior denominado
wxPack, este permite seleccionar que se desea instalar.
Code::Blocks
En este momento (febrero de 2008) no existe un instalador actualizado (pronto habrá uno disponible)
pero es posible usar la versión del repositorio de versiones, en mi caso usé
CB_20080211_rev4872_win32.7z,para que funcione correctamente se necesitan además,
mingwm10_gcc421.7z y wxmsw28u_gcc_cb_wx287.7z, se descomprimen en algún directorio y listo.
Para descomprimir este tipo de archivos (.7z) se puede conseguir un programa libre en la red llamado
7-Zip.
wxFormBuilder y los sizers
Existen dos fomas para el programador de poner los widgets en un contenedor, manualmente o
usando algúnalgoritmo, la primera forma es la que se usa comúnmente en interfaces pequeñas en las
que generalmente no se permite el redimensionamiento, pues tiene el inconveniente que un cambio de
tamaño de hace que los widgets se queden las posiciones originales haciendo que la apariencia de la
interfaz no se la mejor tal y como se muestra en las figuras siguientes.
Figura 3
3
Jhon James QuinteroOsorio
Además de lo mencionado un cambio de plataforma (o de tema en una misma plataforma) puede
hacer que nuestra interfaz se convierta en una especie de mutante.
Figura 4 Efectos de cambio de plataforma
¿Cómo hacemos para que esto no suceda? Aja, la respuesta es con layouts, lo que en wxWidgets se
denominan sizers.
Trabajando con sizers en wxFormBuilder
Los sizers, son objetos que se...
Regístrate para leer el documento completo.