*Hi, *
*    A problem I've been having with implementing my model is that I needed 
to declare a root item initially so my model would be able to initialize 
with a valid parent. I implemented it like so : *

class SceneGraphModel(QtCore.QAbstractItemModel):

        def __init__(self, parent=None):
            super(SceneGraphModel, self).__init__(parent)
            self._rootNode=Node(None)
            self.nodeRole = QtCore.Qt.UserRole


        def rowCount(self, parent):
            if not parent.isValid():
                parentNode=self._rootNode
            else:
                parentNode = parent.internalPointer()

*As you can see I created an empty Node Class object under the variable 
self._rootNode. Now I had no issues with being able to insert rows and 
remove them. However, it seems that declaring it initially as None is 
causing it to clash with my rowCount() method in my model class , first 
with the isValid() method and if I remove that. I will get a :*

AttributeError: 'NoneType' object has no attribute 'childCount'

*I'm assuming from this error that declaring it as None initially means it 
doesn't have any attributes which the model class seems to have problems 
dealing with. And even after inserting some rows it still has no valid 
childCount to access. Below is my Node class:*
*
*
class Node(object):

    def __init__(self, fullname, parent=None):

        self._fullName=fullname
        self._children=[]
        self._parent=parent


        if parent is not None:
            parent.addChild(self)


    def addChild(self, child):
        self._children.append(child)

    def insertChild(self, position, child):

        if position < 0 or position > len(self._children):
            return False

        self._children.insert(position, child)
        child._parent = self
        return True

    def removeChild(self, position):

        if position < 0 or position > len(self._children):
            return False

        child = self._children.pop(position)
        child._parent = None

        return True

    def name(self):
        return self._name

    def setName(self,name):
        self._name=name

    def child(self, row):
            return self._children[row]

    def childCount(self):
            return len(self._children)

    def parent(self):
        return self._parent

    def row(self):
        if self._parent is not None:
            return self._parent._children.index(self)

*Is there a way of implementing this root node? So far the examples I've 
managed to find all seems to initialize the model with information already 
inserted and do not start off with an empty model. Is this supposed to be a 
design limitation of PyQT or am I just doing this wrong? *
*
*
Thank you
Gann Boon Bay

-- 
You received this message because you are subscribed to the Google Groups 
"Python Programming for Autodesk Maya" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/python_inside_maya/cfa8f647-ea11-4f6d-84e4-860a8a9f9da5%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to