gtkmm (anteriormente conocido como gtk-- o gtk minus minus [1] ) es la interfaz oficial de C ++ para la popular biblioteca GUI GTK . gtkmm es un software gratuito distribuido bajo la GNU Lesser General Public License (LGPL).
Repositorio | |
---|---|
Escrito en | C ++ |
Plataforma | GTK |
Tipo | Enlace de idioma |
Licencia | Licencia pública general reducida GNU |
Sitio web | www |
gtkmm permite la creación de interfaces de usuario en código o con Glade Interface Designer , usando la clase Gtk :: Builder. Otras características incluyen devoluciones de llamada con seguridad de tipos , un conjunto completo de elementos de control gráfico y la extensibilidad de los widgets a través de la herencia .
Características
Debido a que gtkmm es la interfaz oficial de C ++ de la biblioteca GUI GTK , los programadores de C ++ pueden usar las técnicas de OOP comunes como la herencia y las instalaciones específicas de C ++ como STL (de hecho, muchas de las interfaces de gtkmm, especialmente las de los contenedores de widgets , son diseñado para ser similar a la biblioteca de plantillas estándar (STL)).
Las características principales de gtkmm se enumeran a continuación:
- Utilice la herencia para derivar widgets personalizados .
- Controladores de señales con seguridad de tipos , en C ++ estándar .
- Polimorfismo .
- Uso de la biblioteca estándar de C ++, incluidas cadenas , contenedores e iteradores .
- Internacionalización completa con UTF-8 .
- Gestión completa de la memoria C ++ .
- Composición de objetos .
- Desasignación automática de widgets asignados dinámicamente .
- Uso completo de los espacios de nombres de C ++ .
- Sin macros .
- Multiplataforma: Linux ( gcc , LLVM ), FreeBSD ( gcc , LLVM ), NetBSD ( gcc ), Solaris ( gcc , Forte ), Win32 ( gcc , MSVC ++ ), macOS ( gcc ), otros.
Hola mundo en gtkmm
//HelloWorldWindow.h#ifndef HELLOWORLDWINDOW_H #define HELLOWORLDWINDOW_H#include #include // Derivar un nuevo widget de ventana a partir de uno existente. // Esta ventana solo contendrá un botón etiquetado como "Hello World" class HelloWorldWindow : public Gtk :: Window { public : HelloWorldWindow (); protegido : Gtk :: Botón hello_world ; };#terminara si
//HelloWorldWindow.cc#include #include "HelloWorldWindow.h"HelloWorldWindow :: HelloWorldWindow () : hello_world ( "Hello World" ) { // Establece el título de la ventana. set_title ( "Hola mundo" ); // Agrega el botón de miembro a la ventana, agrega ( hello_world ); // Maneja el evento 'click'. hola_mundo . signal_clicked (). connect ([] () { std :: cout << "Hola mundo" << std :: endl ; }); // Muestra todos los widgets secundarios de la ventana. show_all_children (); }
//main.cc#include #include "HelloWorldWindow.h"int main ( int argc , char * argv []) { // Inicialización Gtk :: Main kit ( argc , argv ); // Crear un objeto de ventana de hola mundo Ejemplo de HelloWorldWindow ; // bucle principal de gtkmm Gtk :: Main :: run ( ejemplo ); return 0 ; }
El programa anterior creará una ventana con un botón con la etiqueta "Hola mundo". El botón envía "Hola mundo" a la salida estándar cuando se hace clic en él.
El programa se ejecuta usando los siguientes comandos:
$ G ++ -std = c ++ 11 * .cc -o ejemplo ` pkg-config gtkmm-3.0 --cflags --libs ` $ ./example
Esto generalmente se hace usando un archivo MAKE simple .
Aplicaciones
Algunas aplicaciones notables que usan gtkmm incluyen:
- Amsynth [2]
- Cadabra (programa de computadora) [3]
- Dibujo de gráficos vectoriales de Inkscape .
- Horizon EDA, un paquete de automatización de diseño electrónico para el diseño de placas de circuito impreso.
- PDF Slicer Una sencilla aplicación para extraer, combinar, rotar y reordenar páginas de documentos PDF.
- Workrave ayuda en la recuperación y prevención de RSI.
- Monitor del sistema Gnome [4]
- Gigedit [5]
- Herramienta de partición de disco GParted .
- GUI de Nemiver para el depurador GNU gdb.
- Herramientas de PulseAudio : pavucontrol, [6] paman, [7] paprefs [8] pavumeter, [9]
- RawTherapee [10]
- GNOME Referencer organizador de documentos y administrador de bibliografía
- Seq24 [11]
- Estudio Synfig [12]
- Linthesia [13]
- Interfaz gráfica de usuario de la base de datos del administrador de MySQL Workbench [14] .
- Estación de trabajo de audio digital (DAW) de código abierto de Ardor para Linux y MacOS.
- Aplicación de toma de notas de escritorio Gnote .
- VisualBoyAdvance [15]
- VMware Workstation y VMware Player usan gtkmm para sus puertos Linux.
Ver también
- GTK
- wxWidgets
- FLTK
- Kit de herramientas FOX
- Qt
- VCF
Referencias
- ^ Las preguntas frecuentes de gtkmm
- ^ "Debian - Detalles del paquete amsynth en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete cadabra en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete gnome-system-monitor en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete gigedit en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete pavucontrol en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete paman en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete paprefs en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete pavumeter en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete rawtherapee en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete seq24 en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete synfigstudio en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete linthesia en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete mysql-workbench en jessie" . Consultado el 6 de marzo de 2017 .
- ^ "Debian - Detalles del paquete visualboyadvance-gtk en jessie" . Consultado el 6 de marzo de 2017 .
enlaces externos
- Página web oficial
- binarios gtkmm para Windows en SourceForge.net