Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DaniekL en 23 Febrero 2013, 11:14 am



Título: [Solucionado] Problema con GtkText [Linux][GTK+]
Publicado por: DaniekL en 23 Febrero 2013, 11:14 am
Buenas;

Estoy programando una aplicación para tomar notas, la idea es que conky ejecute la parte de leer notas y yo la parte de crear una nueva. Como es obvio para tomar la nota necesito una textbox, bien, como en el ordenador que voy a usar este programa usa OpenBox he decidido hacerla en Gtk+ (la versión 2.0 más concretamente).

El problema viene cuando compilo el código. Me da el siguiente error:

Código:
$ gcc -o notes notes.c `pkg-config --cflags gtk+-2.0 --libs`
notes.c: En la función ‘main’:
notes.c:22:3: aviso: declaración implícita incompatible de la función interna ‘exit’ [activado por defecto]
notes.c:34:4: aviso: declaración implícita incompatible de la función interna ‘exit’ [activado por defecto]
notes.c: En la función ‘create_window’:
notes.c:88:11: aviso: la asignación crea un puntero desde un entero sin una conversión [activado por defecto]
notes.c:89:25: error: ‘GtkText’ no se declaró aquí (primer uso en esta función)
notes.c:89:25: nota: cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece
notes.c:89:34: error: expected expression before ‘)’ token

El fallo sobretodo es que identifique GtkText, que es un GtkWidget, como una función. Me han dicho que podría ser un fallo con los includes, pero no tengo ni idea de como arreglarlo.

Gracias de antemano.
El código: http://pastebin.com/i8t8X4L7


Título: Re: Problema con GtkText [Linux][GTK+]
Publicado por: Stakewinner00 en 23 Febrero 2013, 11:39 am
el único error es
 error: expected expression before ‘)’ token

Fijate bien haber que hay allí


Título: Re: Problema con GtkText [Linux][GTK+]
Publicado por: DaniekL en 23 Febrero 2013, 11:44 am
No me explique bien :xD, ya edite explicandolo mejor.


Título: Re: Problema con GtkText [Linux][GTK+]
Publicado por: 0xDani en 23 Febrero 2013, 14:25 pm
Si no posteas la parte del codigo que te da problemas no creo que haya mucho que hacer...


Título: Re: Problema con GtkText [Linux][GTK+]
Publicado por: DaniekL en 23 Febrero 2013, 16:48 pm
Puse un link a pastebin con el código, pero bueno, posteo la función problemática igualmente.

Código
  1. void create_window(int argc, char **argv) {
  2.    /**
  3.      * Creates a GTK+ dialog for editing the note          
  4.      */
  5.    GtkWidget *window, *save_button, *text_box, *container;
  6.  
  7.    gtk_init(&argc, &argv);
  8.  
  9.    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  10.    gtk_window_set_title((GtkWindow *) window, "Notes");
  11.    gtk_window_set_default_size((GtkWindow *) window, 300,160);
  12.    g_signal_connect((GObject *) window, "delete-event", (GCallback) gtk_main_quit, NULL);
  13.  
  14.    save_button = gtk_button_new_with_label("Save");
  15.    g_signal_connect((GObject *) save_button, "clicked", (GCallback) save_note, NULL /*By the way*/);
  16.  
  17.    container = gtk_vbox_new(FALSE, 1);
  18.  
  19.    text_box = gtk_text_new(NULL, NULL);
  20.    gtk_text_set_editable((GtkText *) text_box, TRUE);
  21.  
  22.    gtk_box_pack_start((GtkBox *) container, text_box, FALSE, FALSE, 0);
  23.    gtk_box_pack_start((GtkBox *) container, save_button, FALSE, FALSE, 0);
  24.  
  25.    gtk_container_add((GtkContainer *) window, container);
  26.  
  27.    gtk_widget_show_all(window);
  28.    gtk_main();
  29. }


Título: Re: Problema con GtkText [Linux][GTK+]
Publicado por: 0xDani en 23 Febrero 2013, 19:51 pm
Perdon, no habia visto el link  :P

Prueba a cambiar esta linea:

Código
  1. gtk_text_set_editable((GtkText *) text_box, TRUE);

Por esta:

Código
  1. gtk_text_set_editable(GTK_TEXT(text_box), TRUE);

Saludos.


Título: Re: Problema con GtkText [Linux][GTK+]
Publicado por: DaniekL en 23 Febrero 2013, 20:12 pm
Prueba a cambiar esta linea:

Código
  1. gtk_text_set_editable((GtkText *) text_box, TRUE);

Por esta:

Código
  1. gtk_text_set_editable(GTK_TEXT(text_box), TRUE);

Ya probe esa solución y no me funcionó, pero gracias de todas formas  :D


Título: Re: Problema con GtkText [Linux][GTK+]
Publicado por: naderST en 24 Febrero 2013, 01:11 am
Citar
Warning

GtkText is deprecated and unsupported. It is known to be buggy. To use it, you must define the symbol GTK_ENABLE_BROKEN prior to including the GTK+ header files. Use GtkTextView instead.

Código
  1. gcc -o hello-gtk  -DGTK_ENABLE_BROKEN hello-gtk.c `pkg-config gtk+-2.0 --cflags --libs`
  2.  

Información sacada de:
http://www.linuxquestions.org/questions/programming-9/%91gtk_text%92-was-not-declared-in-this-scope-832024/ (http://www.linuxquestions.org/questions/programming-9/%91gtk_text%92-was-not-declared-in-this-scope-832024/)


Título: Re: Problema con GtkText [Linux][GTK+]
Publicado por: DaniekL en 24 Febrero 2013, 11:28 am
Funcionó cambiando el Widget a GtkTextView  :laugh:. Muchisimas gracias por la solución.  ;-) ;-) ;-)