[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