GTK+ y Dev-C++

Para utilizar GTK+ en Dev-C++ sigue los siguientes pasos:

1) Descarga en instálate Dev-C++, preferiblemente la última versión.

2) Descarga en instálate devex en el mismo directorio que tengas instalado Dev-C++, que es un softaware que instala en Dev-C++ lo necesario para poder utilizar la librería GTK+.

3) Abre Dev-C++, selecciona: File->New_Proyect->GUI_Toolokits->GTK+

4) Haz un “hola mundo” en el archivo principal:

#include <gtk/gtk.h>

/*  esto es una función de retrollamada. los argumentos son ignorados en este
*  ejemplo… Mas retrollamadas más adelante. */
void
hello (GtkWidget *widget, gpointer data)
{
g_print (“Hola Mundo\n”);
}

gint
delete_event(GtkWidget *widget, GdkEvent *event, gpointer data)
{
g_print (“Evento delete\n”);
/* si devuelve FALSE en el manejador de la
* señal “delete_event”, GTK emitirá la señal “destroy”.
* Devolviendo TRUE da a entender que no quiere
* que la ventana sea destruida. Esto es útil para
* que aparezcan los diálogos típicos de ‘¿está seguro
* de que desea salir?’. */

/* Cambiando TRUE a FALSE la ventana principal
* sera destruida con un “delete_event”. */

return (TRUE);
}

/* otra retrollamada */
void
destroy (GtkWidget *widget, gpointer data)
{
gtk_main_quit ();
}

int
main (int argc, char *argv[])
{
/* GtkWidget es el tipo para el almacenamiento de los widgets */
GtkWidget *window;
GtkWidget *button;

/* Esta función se debe llamar en todas la aplicaciones GTK
* antes de ninguna otra los argumentos son pasados desde la
* línea de órdenes y devueltos a la aplicación. */
gtk_init (&argc, &argv);

/* crear una nueva ventana */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

/* cuando a la ventana se le pasa la señal “delete_event”
* (la envía el usuario a través del gestor de ventanas), le
* pedimos que llame a la función delete_event () tal y como
* está definida arriba. El dato pasado a la función de
* retrollamada es NULL y es ignorado en la función de
* retrollamada. */
gtk_signal_connect (GTK_OBJECT (window), “delete_event”,
GTK_SIGNAL_FUNC (delete_event), NULL);

/* aquí conectamos el evento “destroy” al manejador
* de la señal. Este evento sucede cuando llamamos a
* gtk_widget_destroy() en la ventana, o si devolvemos
* ‘FALSE’ en la retrollamada “delete_event”. */
gtk_signal_connect (GTK_OBJECT (window), “destroy”,
GTK_SIGNAL_FUNC (destroy), NULL);

/* configura el ancho del borde de la ventana. */
gtk_container_border_width (GTK_CONTAINER (window), 10);

/* crea un nuevo botón con la etiqueta “Hola Mundo”. */
button = gtk_button_new_with_label (“Hola Mundo”);

/* Cuando el botón recibe la señal “clicked”, llamará
* a la función hello() pasándole NULL como argumento.
* La función hello() esta definida arriba. */
gtk_signal_connect (GTK_OBJECT (button), “clicked”,
GTK_SIGNAL_FUNC (hello), NULL);

/* Esto causará que la ventana se destruya por la llamada
* a gtk_widget_destroy(window) cuando se emita “clicked”.
* De nuevo, la señal “destroy” podría venir desde aquí o
* desde el gestor de ventanas. */
gtk_signal_connect_object (GTK_OBJECT (button), “clicked”,
GTK_SIGNAL_FUNC (gtk_widget_destroy),
GTK_OBJECT (window));

/* esto pone el botón dentro de una ventana
* (un contenedor gtk). */
gtk_container_add (GTK_CONTAINER (window), button);

/* el paso final es ver este recién creado widget… */
gtk_widget_show (button);

/* y la ventana */
gtk_widget_show (window);

/* Todas las aplicaciones GTK deben tener un gtk_main().
* Aquí termina el control y se espera hasta que suceda un evento
* (como una pulsación del teclado o un evento del ratón). */
gtk_main ();

return 0;
}
/* Fin del ejemplo */

5) Compílalo.

6) Ejecútalo. Si te da un fallo en una ventanita, tienes que hacer lo siguiente:

Tools-> Add the following commands when calling compiler. Añade:

-mms-bitfields

7) Vuelve a ejecutar, te debería funcionar.

Anuncios

4 comentarios to “GTK+ y Dev-C++”

  1. jorge Says:

    hola

    ago lo que tu me dices me descargo el dev 5 qu es el ultimo pero cuando instalo el devex me da un error diciendo que esa no es la direccion de dev c++ como ago

  2. manueldavid Says:

    Vala, creo recordar que a mí me pasó lo mismo. Si te da un error diciendo que esa no es la dirección de dev-C++, es porque la que muestra por defecto es erronea. Fíjate dónde te has instalado Dev-C++ y métela a mano.

    Espero que te ayude, ya me contarás.

    Saludos.

  3. luis alberto Says:

    hola he hecho todo como haz indicado, pero, al compilar no funciona, tengo que hacer un videojuego para la universidad, pero solo puedo usar dev, (el profesor no permite IDE como eclipse o netbeans) que mas puedo hacer?

    me gusta GNU y GTK en linux es espectacular, quiero que mi proyecto lo tenga

    lo errores que presenta son:

    en la linea 8 dice
    ” g_print (“Hola Mundo\n”);”
    el error es:
    8 H:\Universidad\Programacion Orientada a objetos\pruevagtk.cpp stray ‘\147′ in program

    8 H:\Universidad\Programacion Orientada a objetos\pruevagtk.cpp `Hola’ undeclared (first use this function)
    y hay 27 errores mas en las lineas 8, 14 y 82 y todas dicen lo mismo que antes, solo cambia stray/147 por stray/148 que no se que son o a que hacen referencia.

    si puedes ayudame por favor

  4. Jose duccem Says:

    Hola al tratar de compilar me dice que la libreria no exite.
    1 21 C:\Users\jose\Documents\Cosas importantes\Programacion\Intento por enesima vez.c [Error] gtk/gtk.h: No such file or directory

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: