[C con Clase] gtk label set text no me funciona

Steven Davidson srd4121 en njit.edu
Lun Oct 17 15:39:30 CEST 2011


Hola Hl3,

On Mon, Oct 17, 2011 at 3:06 PM, Hl3 <halowin3 en gmail.com> wrote:
> Dejo aqui una muestra de como cambiar el texto a la etiqueta y señalando donde estaba el erro.
>

No es nada aconsejable definir variables globales y deberías intentar
no usarlas. En tu programa, puedes pasar el puntero a 'GtKWidget' como
parámetro a la función 'clik()' a través del parámetro local, 'data'
de tipo 'gpointer'. Esto se hace pasando la etiqueta al registrar la
señal de "clicked". Esto es,

int main( int   argc, char *argv[] )
{
  GtkWidget *boton;
  GtkWidget *label;
  ...
  label = gtk_label_new( "Soy la etiquete" );
  boton = gtk_button_new_with_label( "Pincha aqui" );
  g_signal_connect( G_OBJECT (boton), "clicked", G_CALLBACK (clik),
(gpointer)label );
}

Y luego, usa 'data' en tu función, 'clik()', como si fuese un
'GtkWidget *'; esto es,

void clik( GtkWidget *widget, gpointer data )
{
  gtk_label_set_text( GTK_LABEL(data),"Me han cambiado el texto" );
}

Así, no tienes que definir variables globales.


Espero que esto te sirva.

Steven




Más información sobre la lista de distribución Cconclase