Crear  Editar  FrontPage  Indexes  Buscar  Cambios  History  RSS  Login

tut-treeview-model

Gtk::TreeModels para almacenar datos: Gtk::ListStore y Gtk::TreeStore

Es importante darse cuenta de lo que Gtk::TreeModel es y de lo que no. Gtk::TreeModel es básicamente un simple 'interfaz' para el almacén (data store), en el sentido de que forma un conjunto métodos que permiten al widget Gtk::TreeView (y al programador de la aplicación) averiguar ciertas características de los datos almacenados, por ejemplo, cuantas filas hay, qué filas tienen hijos, cuantos hijos tiene una fila en particular. También proporciona métodos para la obtención de datos, y para indicar qué tipo de datos está almacenando el modelo. Cada almacén debe implementar el interfaz Gtk::TreeModel y proporcionar dichos métodos. Gtk::TreeModel por si mismo tan solo proporciona un método para preguntar a un almacén acerca de sus características y para obtener datos existentes, pero no proporciona ningún método para eliminar o añadir filas al almacén. Esto se hace usando los métodos específicos del almacén.

Gtk+ viene con dos almacenes (modelos): Gtk::ListStore y Gtk::TreeStore. Como su nombre indica, Gtk::ListStore se usa para listas simples de datos sin jerarquía ni relaciones padre-hijo, y Gtk::TreeStore se usa para estructuras de datos en árbol, donde los elementos pueden tener relaciones padre-hijo. Una lista de los archivos de un directorio podría servir como ejemplo de lista simple. Una lista es básicamente un caso especial de árbol en el que ninguno de sus elementos tiene hijos, de manera que se puede usar un TreeStore para mantener una lista simple de elementos. La única razón de ser de Gtk::ListStore es proporcinar un interfaz más sencillo en el que no halla que preocuparse de las relaciones padre-hijo, y porque un modelo de lista simple puede ser optimizado para el caso especial en el que no hay hijos, lo que la hace más rápida y eficiente.

Las implementaciones de TreeModel como Gtk::ListStore y Gtk::TreeStore se encargarán de la vista por ti una vez hayas configurado el Gtk::TreeView para mostrar lo que quieras. Si cambias los datos del almacén, el modelo notificará al TreeView y la vista será actualizada. Si añades o eliminas filas, el modelo también notificará al almacén, y tu fila aparecerá o desaparecerá de la vista.

Ultimas actualizaciones:2011/06/06 08:45:08
Clave:
Referencias:[tut-treeview]