El Thu, 22 de Aug de 2002, a las 10:16:06AM +0200, Faro dijo: > Perd�n por el OT. > > Me he liado la manta a la cabeza y he decidido meterme de lleno en la > programaci�n, campo que ten�a pr�cticamente olvidado. He elegido gtk y > anjuta.
> Como es l�gico me est�n surgiendo muchas dudas. > > La primera es c�mo acceder a las propiedades de un widget desde otro. > Por ejemplo, cambiar un label al pulsar un bot�n. Hay una funci�n que se > ejecuta al pulsar el bot�n, pero �c�mo obtengo el puntero al label? > > De momento lo he solucionado con una chapucilla: > > gtk_signal_connect (GTK_OBJECT (entry1), "changed", > GTK_SIGNAL_FUNC (on_entry1_changed), > label1); > > Es decir, en vez de pasar un puntero nulo, paso como par�metro la > etiqueta label1. Esto funciona, pero requiere tocar un fichero que dice > que no lo edite porque es autogenerado por glade. Si hago cambios en el > interfaz con glade me lo machaca y tengo que volver a hacer el cambio. > Adem�s, de esa forma no puedo pasar varios widgets. Sospecho que tiene > que haber un m�todo m�s eficaz y estandar. Bueno, yo no soy un gran programador en gtk, pero espero ayudarte. En Glade puedes indicar el dato u objeto a pasar en la funci�n gtk_signal_connect (en la ventana de propiedades, pesta�a Se�ales). Respecto a pasar varios datos a la vez, el sistema que yo he visto es crear una estructura de datos espec�fica y pasar un puntero a dicha estructura (un array de punteros a objetos o un struct con todos los datos que necesitas pasar). O puedes usar variables globales (en general menos recomendable). Ultimamente he descubierto el "libglade" que permite trabajar con glade sin necesidad de generar el c�digo. Trabaja directamente del XML que guarda el programa y as� se evita uno la "tentaci�n" de modificar el codigo generado. > PD: �Conoceis alguna lista que hable de estos temas? Si me podeis enviar > por privado la forma de suscribirse mejor. No tengo acceso a ninguna > web. > No, mejor en la lista y as� somos al menos dos que no preguntaremos lo mismo. B-)

