gtkmm

gtkmm es un envoltorio de C++ para GTK+, una biblioteca usada para crear interfaces gráficas de usuario. Esta liberado bajo la licencia LGPL, para que pueda desarrollar software abierto, software gratuito o software comercial usando gtkmm sin comprar ninguna licencia.

gtkmm fue originalmente llamado gtk-- debido a que GTK+ ya tenía el signo + en el nombre. Sin embargo, debido a que -- no puede ser indexado fácilmente en los motores de búsqueda, el paquete fue generalmente llamado gtkmm, y eso fue con lo que nos quedamos.

1.2.1. ¿Por qué usar gtkmm en vez de GTK+?

gtkmm le permite escribir código usando técnicas normales de C++ tales como encapsulación, derivación y polimorfismo. Como programador de C++, probablemente ya se habrá dado cuenta de que esto conlleva a un código mas limpio y mejor organizado.

gtkmm es más seguro, por lo que el compilador puede detectar errores que sólo pudieran detectarse durante ejecución al usar C. Este uso de tipos específicos también hace la API más limpia debido a que puede ver qué tipos deberían usarse con sólo mirar la declaración de un método.

Se puede hacer uso de herencia para derivar nuevos widgets. Derivar nuevos widgets en código C GTK+ es tan complicado y propenso a errores que casi ningún codificador de C lo hace. Como programador en C++ usted sabe que la derivación es una técnica orientada a objetos esencial.

Pueden usarse instancias de miembros, simplificando la gestión de memoria. Todos los widgets C GTK+ son tratados usando punteros. Como programador en C++ usted sabe que los punteros deben evitarse siempre que sea posible.

gtkmm implica menos código en comparación con GTK+, el cual usa nombres de funciones prefijadas y muchos macros.

1.2.2. gtkmm comparado con Qt

Qt de Trolltech es el competidor más cercano de gtkmm, por lo que merece discusión.

gtkmm developers tend to prefer gtkmm to Qt because gtkmm does things in a more C++ way. Qt originates from a time when C++ and the standard library were not standardised or well supported by compilers. It therefore duplicates a lot of stuff that is now in the standard library, such as containers and type information. Most significantly, Trolltech modified the C++ language to provide signals, so that Qt classes cannot be used easily with non-Qt classes. gtkmm was able to use standard C++ to provide signals without changing the C++ language. See the FAQ for more detailed differences.

1.2.3. gtkmm es un envoltorio

gtkmm is not a native C++ toolkit, but a C++ wrapper of a C toolkit. This separation of interface and implementation has advantages. The gtkmm developers spend most of their time talking about how gtkmm can present the clearest API, without awkward compromises due to obscure technical details. We contribute a little to the underlying GTK+ code base, but so do the C coders, and the Perl coders and the Python coders, etc. Therefore GTK+ benefits from a broader user base than language-specific toolkits - there are more implementers, more developers, more testers, and more users.