Erick Tryzelaar
Tue, 30 Sep 2008 20:56:40 -0700
On Tue, Sep 30, 2008 at 8:04 PM, Erick Tryzelaar
<[EMAIL PROTECTED]> wrote:
> Could this possibly be the source of my trouble?
It doesn't appear to be. I modified it to use internalId and a global
variable and it still segfaults. I've reduced this down as much as I
can, does anyone have any idea why this keeps crashing?
import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Node:
def __init__(self, parent):
self.parent = parent
self.children = {}
def child(self, row):
try:
return self.children[row]
except KeyError:
node = self.children[row] = Node(self)
return node
class Model(QAbstractItemModel):
def __init__(self, parent=None):
QAbstractItemModel.__init__(self, parent)
self.root = Node(None)
def rowCount(self, parent=QModelIndex()):
return 1
def columnCount(self, parent=QModelIndex()):
return 1
def hasChildren(self, index):
return True
def parent(self, index):
if not index.isValid():
return QModelIndex()
parentNode = index.internalPointer().parent
if not parentNode:
return QModelIndex()
return self.createIndex(0, 0, parentNode)
def index(self, row, column, parent=QModelIndex()):
if column != 0:
return QModelIndex()
if parent.isValid():
parentNode = parent.internalPointer()
else:
parentNode = self.root
return self.createIndex(row, column, parentNode.child(row))
def data(self, index, role=Qt.DisplayRole):
if not index.isValid() or role != Qt.DisplayRole:
return QVariant()
return QVariant('a')
def main():
app = QApplication(sys.argv)
model = Model()
window = QTreeView()
window.setModel(model)
window.resize(QSize(600, 300))
window.show()
sys.exit(app.exec_())
main()
_______________________________________________
PyQt mailing list PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt