Hi Armando, On Wed, Jun 3, 2009 at 9:34 AM, "V. Armando Solé" <[email protected]> wrote:
> Hello, > > I think I have fallen into a Qt bug but perhaps I am wrong. > > According to the (latest) Qt documentation, QAbstractItemModel.createIndex > takes a uint32 as the model index internalId, while the internalId() method > of QModelIndex returns a uint64. I guess my problems are coming from that > inconsistency. > > The problem is illustrated below. On a windows machine and on a 64-bit > linux machine everything is fine. > > On a 32-bit linux machine the given internalId (= id(a) ) and the returned > internalId are not the same. In fact, one of them is negative. > > Both, the linux-32 machine and the windows XP machine are running sip > 4.7.9, PyQt 4.4.4 and qt 4.4.3 > > Am I missing some obvious solution to the problem? > > Best regards, > > Armando > > import PyQt4.Qt as qt > > class Model(qt.QAbstractItemModel): > def index(self, row, column, parent): > a=[" Hello World"] > index = self.createIndex(row, column, id(a)) > print "Next two values should be the same" > print "indexInternalId = ", index.internalId() > print "id(a) = ", id(a) > return index > > if __name__ == "__main__": > app = qt.QApplication([]) > w = Model() > w.index(0,0,None) > Relatedly, I think there is a small problem with the PyQt4 documentation for the overloaded QAbstractItemModel.createIndex method. It looks like Qt's documentation for passing a pointer is being presented in PyQt4's method for passing an identifier, and PyQt's pointer method documentation is empty. When I first read PyQt's documentation for this method, there was nothing to indicate that the id passed to createIndex should end up as the index's internalId(), so I wrote a workaround. But now that I read Qt-4.5's documenation for this method, it seems clear that these identifiers should be equal. By the way, is your windows machine 32 or 64 bit? Darren
_______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
