pyqt  

[PyQt] createIndex() in treemodels and pyqt-book

Knacktus
Thu, 26 Aug 2010 23:40:28 -0700

Hello everyone,

I'm a bit confused about the third argument of the createIndex() method. The Qt class documentation simply says it's an internal pointer. Then, the PyQt-Book "Rapid GUI Programming ..." says index have a row, column and a parent. So I thought the pointer must be a pointer to the parent index. That's also what additional Qt documentation on the model-view framework is saying:

http://doc.qt.nokia.com/4.6/model-view-model.html
(paragraph "Parents of Items")

But on the other hand, the Qt doc says about ModelIndex::internalPointer, that it's an association with the internal data structure, so it wouldn't be a pointer to another model index. Also, when I look at examples in the pyqt-Book it looks like parent is the parent in the underlaying data structure.

code from the example of chapter 16, treeoftable.py:
####################################################
    def index(self, row, column, parent):
        assert self.root
        branch = self.nodeFromIndex(parent)
        assert branch is not None
        return self.createIndex(row, column,
                                branch.childAtRow(row))

    def nodeFromIndex(self, index):
        return (index.internalPointer()
                if index.isValid() else self.root)

So, what's the pointer pointing to?

- a QModelIndex of the the parent in the underlying data structure
- a reference to the corresponding item itself in the underlying data structure - a reference to the corresponding parent of the item in the underlying data structure

Thanks in advance and cheers,

Jan
_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt
  • [PyQt] createIndex() in treemodels and pyqt-book Knacktus