Crea  Modifica  FrontPage  Indici  Cerca  Ultime modifiche  History  RSS  Login

tut-treeview-model

Gtk::TreeModels for Data Storage: Gtk::ListStore and Gtk::TreeStore

E' importante capire che cos' Gtk::TreeModel e cosa non . Gtk::TreeModel principalmente solo un'"interfaccia" al data store, ovvero un insieme standardizzato di metodi che permettono al widget Gtk::TreeView (e all'applicazione) di richiedere certe caratteristiche di un data store, per esempio quante righe ci sono, quali righe hanno figli e quanti figli particolari una riga ha. Inoltre fornisce anche metodi per richiedere i dati di un data store e dire all vista albero che tipo di dati immagazzinato nel modello. Ogni data store deve implementare l'interfaccia Gtk::TreeModel e fornire questi metodi. Gtk::TreeModel stesso fornisce solo un modo di richiedere le caratteristiche e la ricezione dei dati esistenti, esso non fornisce un metodo di per rimuovere o aggiungere righe allo store. Questo fatto usando gli specifici metodi dello store.

(da tradurre)

Gtk+ comes with two built-in data stores (models): Gtk::ListStore and Gtk::TreeStore. As the names imply, Gtk::ListStore is used for simple lists of data items where items have no hierarchical parent-child relationships, and Gtk::TreeStore is used for tree-like data structures, where items can have parent-child relationships. A list of files in a directory would be an example of a simple list structure, whereas a directory tree is an example for a tree structure. A list is basically just a special case of a tree with none of the items having any children, so one could use a tree store to maintain a simple list of items as well. The only reason Gtk::ListStore exists is in order to provide an easier interface that does not need to cater for child-parent relationships, and because a simple list model can be optimised for the special case where no children exist, which makes it faster and more efficient.

Tree model implementations like Gtk::ListStore and Gtk::TreeStore will take care of the view side for you once you have configured the Gtk::TreeView to display what you want. If you change data in the store, the model will notify the tree view and your data display will be updated. If you add or remove rows, the model will also notify the store, and your row will appear in or disappear from the view as well.

Ultima modifica:2006/01/12 06:38:50
Parola chiave:
Referenze:[tut-treeview]