Hola, parece que estas pasando los flags GTK_FILL y GTK_EXPAND en el parametro yoptions de gtk_table_attach(), prueba a no pasar ningun flag (o solo GTK_FILL), eso debería funcionar para que las "filas" no se expandieran cuando hay espacio disponible
Carlos On Wed, 2006-11-29 at 12:24 +0100, Sergio Paracuellos wrote: > Hola, > > Tengo un problema con la anchura de celdas que se ajustan en altura al > tamaño del widget que las contiene. El caso es que tengo una ventana con > scroll y dentro una tabla que se genera dinamicamente con tantas filas > como elementos tengo almacenados. > > El problema es que cuando tengo pocos elementos la altura de la fila de > la tabla ocupa todo la ventana de scroll y conforma se añaden elementos > se van ajustando en esa proporcion (1/2, 1/4 ...) > > El código es el siguiente: > > ......... > > showtask_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); > gtk_window_set_title(GTK_WINDOW(showtask_window), _("Lista de Tareas")); > g_signal_connect(G_OBJECT(showtask_window), "delete_event", > G_CALLBACK(hide_window), NULL); > > gtk_widget_set_size_request (showtask_window, 750, 400); > scrolled_window = gtk_scrolled_window_new (NULL, NULL); > gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 10); > gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), > GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); > > vbox = gtk_vbox_new(FALSE, 1); > gtk_container_add(GTK_CONTAINER(showtask_window), vbox); > gtk_container_set_border_width(GTK_CONTAINER(vbox), 20); > task_label = gtk_label_new(_("Lista de tareas pendientes:")); > gtk_misc_set_alignment ((GtkMisc *)GTK_LABEL(task_label), 0 , 0); > gtk_box_pack_start (GTK_BOX (vbox), task_label, FALSE, FALSE, 0); > table = gtk_table_new(nitems, 4, TRUE); > > gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0); > gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW > (scrolled_window), table); > > for (i=0; i<nitems; i++) { > > ticks[i] = gtk_check_button_new(); > gtk_table_attach (GTK_TABLE(table), ticks[i], 0, 1, i, i+1, > (GtkAttachOptions) (GTK_FILL), > (GtkAttachOptions) (GTK_FILL), 0, 0); > getColorForTask((unsigned char *)tasks[i], &task_color); > draws[i] = gtk_drawing_area_new(); > gtk_widget_modify_bg(draws[i], GTK_STATE_NORMAL, &task_color); > gtk_table_attach (GTK_TABLE(table), draws[i], 1, 2, i, i+1, > (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), > (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), > 50, 0); > > gtk_table_set_row_spacing(GTK_TABLE(table), i, 5); > gtk_table_set_col_spacing(GTK_TABLE(table), i, 5); > show_labels[i] = gtk_entry_new(); > gtk_entry_set_text(GTK_ENTRY(show_labels[i]), (const char > *)tasks[i]); > > /* select complete tasks */ > done = getTaskStatus((unsigned char *) > gtk_entry_get_text(GTK_ENTRY(show_labels[i]))); > > if (done != -1) && (done == 1) > > gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ticks[i]), > TRUE); > > gtk_entry_set_editable(GTK_ENTRY(show_labels[i]), FALSE); > gtk_table_attach_defaults (GTK_TABLE(table), show_labels[i], 2, 3, > i, i+1); > > entrys[i] = gtk_entry_new(); > getSourceForTask((unsigned char *)tasks[i], source); > if (strlen((char *)source) != 0) { > gtk_entry_set_text(GTK_ENTRY(entrys[i]), (const gchar *)source); > gtk_entry_set_editable(GTK_ENTRY(entrys[i]), FALSE); > gtk_table_attach_defaults (GTK_TABLE(table), entrys[i], 3, 4, i, > i+1); > } > } > > > delb = gtk_button_new_with_label(_("Eliminar tareas seleccionadas")); > gtk_box_pack_start(GTK_BOX(vbox), delb, FALSE, TRUE, 0); > > .... > > Cualquier sugerencia es bienvenida. > > Muchas gracias! > > Un saludo, > Sergio Paracuellos > > _______________________________________________ > Gnome-desarrollo mailing list > Gnome-desarrollo@es.gnome.org > https://listas.es.gnome.org/mailman/listinfo/gnome-desarrollo
_______________________________________________ Gnome-desarrollo mailing list Gnome-desarrollo@es.gnome.org https://listas.es.gnome.org/mailman/listinfo/gnome-desarrollo