I apologize if this has been discussed here before, I searched the mailing list and didn't find anything.
I am beginning to use PyQT4 and I have run into some major headaches trying to use QModelIndex. The problem stems from the fact that as far as I can tell with the PyQT bindings it is not possible to attach a reference to a python object to the index to then later be used by data(), parent(), or any other methods. In C++ this is possible (and seems to be recommended usage) by using the internalPointer() method of ModelIndex. This works for C++ because the internal pointer is stored as a void pointer that the developer knows the true type of and they can just cast it to the correct type to use it. Without this capability all use of QModelIndex in PyQT, when I use TreeViews I have found myself contorting my data models quite a bit to make things limp along. I am currently funneling all index lookups through a manually maintained map from int id's to python objects. Is this how other people are also working with QT4 models? I was surprised that there was no way (that I know of) to attach a python object to a QModelIndex. It seems from the QT documentation that this is the intent of how indexes are to be used in C++, but there is no corresponding way to do this in Python. I was wondering though, would it be possible to expand the PyQT bindings a bit and add two methods: QModelIndex.internalPyObj() QAbstractItemModel.createIndexPy(int, int, pyobj) I think it could be implemented by casting from PyObject* to void* behind the scenes and passing through to the existing internalPointer() C++ interface. This would make working in Python much easier while still preserving the intent of the QModelIndex interface. Any comments? Am I missing some easy way to do this already? Thanks, Allen _______________________________________________ PyKDE mailing list [email protected] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
