[C con Clase] Ayuda, objetos de Glade en C y duda
D1e6o!
diegogeid en gmail.com
Mie Oct 13 13:56:45 CEST 2010
Buenas, aprovecho antes de enviarles mi duda para felicitarlos por la
lista y el nivel que presenta, ya que en general veo grandes
respuestas de su parte.
Tengo un problema y tras intentos no logro resolverlo. Deseo comenzar
a utilizar Glade para crear programas Gtk por su aparente practicidad.
Logro crear una ventana y ejecutarla, así como también asociar
funciones a botones y demás, el problema se genera cuando deseo
interactuar con ellos y sus propiedades
Mas específicamente: Cree un botón desde glade con el nombre "Acerca
de" para estudiar como se utiliza y un diálogo predefinido de "acerca
de". Coloco en la señal clicked del botón un manipulador llamado
"AcercaDe", el cual es correctamente llamado desde C cuando lo compilo
y demás.
Ahora tengo 2 dudas del método para interactuar con los widgets:
1 - Como hago para que, desde la función que es llamada por la señal
(una ves compilada y demás), precisamente, la función void AcercaDe
(GtkObject *object, gpointer user_data), abra el diálogo AcercaDe que
se encuentra en el archivo principal.glade?
2 - Como hago para interactuar desde mi programa en C con los objetos?
Por ejemplo, cambiarle el texto a un cuadro de texto o el nombre a un
botón?
Muchas gracias desde ya, dejo el programa con el cual me encuentro
experimentando que es muy básico pero a find e dejar algo conciso o
para quien quiera probar.
#include <gtk/gtk.h>
GtkBuilder *builder;
void on_window_destroy (GtkObject *object, gpointer
user_data)//conectado con un boton llamado salir
{
gtk_main_quit ();
}
void AcercaDe (GtkObject *object, gpointer user_data)
{
//rutina para abrir el diálogo acerca de
}
int main (int argc, char *argv[])
{
GtkWidget *window;
gtk_init (&argc, &argv);
builder = gtk_builder_new ();
gtk_builder_add_from_file (builder, "Principal.glade", NULL);
window = GTK_WIDGET (gtk_builder_get_object (builder, "VentPrinc"));
gtk_builder_connect_signals (builder, NULL);
g_object_unref (G_OBJECT (builder));
gtk_widget_show (window);
gtk_main ();
return 0;
}
Saludos y muchas gracias nuevamente!
Más información sobre la lista de distribución Cconclase