GtkTreeView, el infierno.
Problema: crear con gtk y C un Gtk tree view de una columna de texto, editable y con dos botones para añadir…no queria ensuciarme la boca pero lo tengo que decir que en m$-visualbasic se hacia con un list box en dos patadas y ademas al igual que en la version en formularios de html se podia añadir nuevos elementos usando la cabecera y no teniendo que poner dos botones mas (añadir y borrar).
En cifras:
- 2 dias (+ 1 noche) haciendo pruebas y probando ejemplos
- Entre 8 y 12 consultas al google.
- De las cuales se han obtenido y leido de 20 a 30 paginas en varios idomas…ademas del ingles y el español, el portugues y alguna en frances y aleman.
- Al pie de 5 o 7 ejemplos diferentes probados
- 2 consultas al canal #gnome-hispano y #gtk, la de #gtk infructuosa, la de #gnome-hispano mejor (gracias Rodrigo supongo que no leeras pero me leido bien la gtk-demo) pero el infierno sigue quemando.
- Ultima prueba, mas o menos 80 lineas de codigo o_O para crear el tree view….y no funciona.
Resultado: Descubrir que a Gtk necesita mas coccion porque todavia esta duro. Si queda muy bonito eso de separar en MVC (que todo dios lo pone en sus minitutoriales que son mini-utiles), pero la cosa esta clara, no es util y es un engorro de la ostia porque no es de cajon tener que escribir mas de 100 lineas para solo configurar ese widget. Tengo que reconocer que en esta afirmacion hay mas pena que odio, porque que Gtk tenga estos fallos, no es bueno para nadie. Si ya lo decia mi amigo Kahuna que Qt y KDE estan a años luz de Gtk y Gnome, y eso da pena cuando te molan las Gtk (pese a estos fallos que provocan mas sufrimiento).
Yo nose pero lo llevamos crudo si queremos que por ejemplo las tipicias aplicaciones de carniceria o taller se programen en software libre, en especial en Gtk porque no veo en la situacion al tipico informatico de FP o modulo que no tiene vocacion y que le aburre programar, no lo veo haciendo una cacho aplicacion de carniceria o taller, con gtk, no lo veo.
Yo creia que gtk en su desarrollo, se discutia mas las cosas via listas de correo, pero es que dejarse pasar este problema de “usabilidad” en el desarrollo, es un fallo catastrofico.
Solucion: pues esta dificil la cosa, porque cambiar la forma en que se crea un GtkTreeView supone adelantar muchas cifras al numero de version de gtk, no creo que influya a pasarla a gtk3.x pero si subira cifras, con las consiguientes incompatibilidades. Otra solucion que parece que la gente esta manos a la obra es petar la red de redes de tutoriales sobre GtkTreeView y mas o menos se esta consiguiendo, con algunas pegas como que casi todos los que me comido en mi idioma te meten un rollo previo sobre MVC y cosas asi, en vez de ir directos a lo que interesa, ejemplos sencillos y claros de como se crea y trabaja con GtkTreeView. Otra solucion mas o menos privada, es hacer un codigo GtkTreeView generico encapsulado dentro de una funcion para no tener que volver a sufrirlo, supongo que sera mi camino y si lo consigo pues lo mostrare para que evitar el sufrimiento a mas gente. La ideal es que los mismos desarrolladores de Gtk le metieran mano sus librerias y añadieran un Gtk_tree_view_new_default() o crearan un otro nuevo “objeto” por debajo de la jerarquia de GtkTreeView que fuera una version mas usable de este.
Otro fallo mas de usabilidad a la saca, como otro muy importante la falta de un sistema MDI para crear aplicaciones de multiples ventanas (las pestañas no es MDI puro porque no puedes trabajar con dos ventanas a la vez), porque por ejemplo la primera vez que esnifas Gimp es una ostia que te puede dejar en el sitio, pero ya con los años el cuerpo se va acostumbrando y esnifar Gimp ya no te mete esas ostias tan gordas cuando ves saltar tropecientas ventanas de golpe. Señores de Gtk queremos drogas de calidad, metan MDI que los Apple han metido ratones de mas de un boton antes que vosotros los MDI en Gtk.
¿Alguno se ha pegado con GtkTreeView y ha ganado? Que nos cuente como hizo jaquemate haber si ganamos los demas ;).
Actualizacion: debe ser una de esas situaciones en que la mejor manera de avanzar es pararse para que la cabeza se enfrie, porque ya estar apunto de mandar a tomar por culo gtk y gnome y hacerme un tatuaje de kde, ponerme a escribir el articulo, terminar de escribir este articulo, y volver a darle al GtkTreeView y conseguirlo, no a la primera pero si al final, pasito a pasito, y ya medio comprendo el GtkTreeView, usando la gtk-demo (gracias Rodrigo) como base, releyendo el tutorial gtkTreeView de gtk y releyendo tambien la seccion de gtkTreeView del libro de gnome de gnomehispano. Pero eso no quita, que deje el articulo segun esta porque mientras lo escribia sentia esa desesperacion que esta implicita en cada palabra, aparte de otras cosas interesantes que hay en el articulo. Y ahora mismo son las 4 de la mañana, asique en cuanto lo entienda y tal, prometo hacer un tutorial sobre esto.
Por: MD | Consejos, Trucos y Tutoriales | | Referencias ()







El problema no es GTK, el problema es coger GTK sin saber GTK XD. No quiero que te sienteas ofendido, pero con la documentación y un rato (menos de una tarde) consigues hacerlo.
En cualquier caso C ( 100 líneas no son nada, por cierto) no es un lenguaje adecuado para hacer eso, si hubieras escogido python lo habrías solucionado en mucho menos.
Además tengo que decirte que programar GUI no es lo más agradable de programar XD
Comentario por javi — 8 Marzo 2006 9:34 am
o glade c-sharp… 100 lineas en C no son muchas para un widget complejo,de todas formas tiene razon javi, cuando vas a utilizar un sistema GUI nuevo es mejor aprender sus fundamentos antes para no liarte demasiado
Comentario por reus — 8 Marzo 2006 12:12 pm
MDI “puro” al estilo de windows 3.1 creo que en gtk no lo vas a ver nunca, diseñar interfaces de esa manera creo que se considera un fallo de usabilidad (y no solo en el mundo GTK). Aunque creo que mono tiene algo relacionado con el tema
Comentario por Diego — 8 Marzo 2006 1:40 pm
Ahora me quedado con la duda de los MDI, no obstante ya he visto pasos hacia el en gtk, con proyectos como Gimpshop lo que pasa que estan lejos del codigo de la libreria.
Y bueno tengo que reconocer que no me puesto incando codos con Gtk, pero mas o menos lo domino lo suficiente para darle el uso que necesito. Pero me tope con GtkTreeView y dije “otro widget mas que se miran cuatro ejemplos y la documentacion y ale a usarlo” pero la realidad fue otra y bueno es alta la curva de aprendizaje de este widget y claramente se que esta curva en que hay bastantes tutoriales centrados solo en este widget.
Y bueno a montar en bicicleta, se aprende montando en bicicleta, nose las SDL que mas o menos las domino pues aprendi a base de usarlas. Y con gtk he aprendido lo que se ha base de usarlas, y el minicurso mesianico inicial que tuve hace años en una mesa camilla con APG :P.
Comentario por MD — 8 Marzo 2006 2:23 pm