John, The tutorial is fantastic. Great job.
I'd recommend adding a section and an example on how to use the GenericTreeModel. I've found the TreeStore and ListStore to not be very practical for large lists. The GenericTreeModel is a little intimidating the first time you use it. The only example I've been able to find doesn't handle inserting, deleting, and updating rows. Don On Thu, 2004-05-27 at 11:38, John Finlay wrote: > I've added some content to the section on the TreeView widget. It needs > more work but I'd like to get some feedback on it. It's at: > > http://www.moeraki.com/pygtktutorial/pygtk2tutorial/ch-TreeViewWidget.html > > The current contents are: > > 14.1. Overview > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/ch-TreeViewWidget.html#sec-TreeViewOverview> > 14.2. The TreeModel Interface and Data Stores > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeModelInterface.html> > > 14.2.1. Introduction > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeModelInterface.html#sec-TreeModelIntroduction> > 14.2.2. Creating TreeStore and ListStore Objects > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeModelInterface.html#sec-CreatingTreeStoreAndListStore> > 14.2.3. Referring to TreeModel Rows > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeModelInterface.html#sec-ReferringToTreModelRows> > 14.2.4. Adding Rows > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeModelInterface.html#sec-AddingStoreRows> > 14.2.5. Removing Rows > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeModelInterface.html#sec-RemovingStoreRows> > 14.2.6. Managing Row Data > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeModelInterface.html#sec-ManagingRowData> > 14.2.7. Python Protocol Support > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeModelInterface.html#sec-PythonProtocolSupport> > > 14.3. TreeViews > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeViews.html> > > 14.3.1. Creating a TreeView > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeViews.html#sec-CreatingTreeView> > 14.3.2. Getting and Setting the TreeView Model > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeViews.html#sec-TreeViewModelAccess> > 14.3.3. Setting TreeView Properties > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeViews.html#sec-TreeViewProperties> > > 14.4. CellRenderers > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-CellRenderers.html> > > 14.4.1. Overview > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-CellRenderers.html#sec-CellRendererOverview> > 14.4.2. CellRenderer Types > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-CellRenderers.html#sec-CellRendererTypes> > 14.4.3. CellRenderer Properties > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-CellRenderers.html#sec-CellRendererProperties> > 14.4.4. CellRenderer Attributes > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-CellRenderers.html#sec-CellRendererAttributes> > 14.4.5. Cell Data Function > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-CellRenderers.html#sec-CellDataFunction> > 14.4.6. CellRendererText Markup > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-CellRenderers.html#sec-CellRendererTextMarkup> > > 14.5. TreeViewColumns > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeViewColumns.html> > > 14.5.1. Creating TreeViewColumns > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeViewColumns.html#sec-CreatingTreeViewColumns> > 14.5.2. Managing CellRenderers > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeViewColumns.html#ManagingCellRenderers> > > 14.6. Manipulating TreeViews > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-ManipulatingTreeViews.html> > > 14.6.1. Managing Columns > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-ManipulatingTreeViews.html#sec-ManagingColumns> > 14.6.2. Managing Child Rows > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-ManipulatingTreeViews.html#sec-ManagingChildRows> > > 14.7. TreeSelections > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeSelections.html> > > 14.7.1. Getting the TreeSelection > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeSelections.html#sec-GettingTheTreeSelection> > 14.7.2. TreeSelection Modes > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeSelections.html#sec-TreeSelectionMode> > 14.7.3. Retrieving the Selection > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeSelections.html#sec-RetrievingTheSelection> > 14.7.4. Using a TreeSelection Function > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeSelections.html#sec-TreeSelectionFunction> > 14.7.5. Selecting and Unselecting Rows > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeSelections.html#sec-SelectingAndUnselectingRows> > > 14.8. TreeView Drag and Drop > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeViewDragAndDrop.html> > > 14.8.1. Drag and Drop Reordering > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeViewDragAndDrop.html#DragDropReordering> > 14.8.2. External Drag and Drop > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeViewDragAndDrop.html#sec-ExternalDragDrop> > 14.8.3. TreeView Drag and Drop Example > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeViewDragAndDrop.html#sec-TreeViewDnDExample> > > 14.9. TreeModelSort and TreeModelFilter > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeModelSortAndTreeModelFilter.html> > > 14.9.1. TreeModelSort > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeModelSortAndTreeModelFilter.html#sec-TreeModelSort> > 14.9.2. TreeModelFilter > > <http://www.moeraki.com/pygtktutorial/pygtk2tutorial/sec-TreeModelSortAndTreeModelFilter.html#sec-TreeModelFilter> > > > > I also created a PDF version of the tutorial: > > http://www.moeraki.com/pygtktutorial/pygtk2-tut.pdf > > Please send me comments about errors, omissions, confusing parts, > stupidities, etc. > > Thanks > > John > > _______________________________________________ > pygtk mailing list [EMAIL PROTECTED] > http://www.daa.com.au/mailman/listinfo/pygtk > Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/ > > _______________________________________________ pygtk mailing list [EMAIL PROTECTED] http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/
