Dear Darren,
There is something weird going on under linux 32 bit.
The code below works fine on windows.
On linux 64 bit, it is fine either after masking the values, either
supplying a 32-bit masked identifier. That illustrates the fact the
intended behavior of internalId() is to return the supplied value.
I cannot get the same values under linux 32-bit either with or without
masking.
Armando
import PyQt4.Qt as qt
import random
import sys
mask = 0xFFFFFFFF
class Model(qt.QAbstractItemModel):
def index(self, row, column, parent):
a=[random.random()]
if False:
index = self.createIndex(row, column, id(a) & mask) #This
forces a 32bit identifier but not OK on 32 bit
else:
index = self.createIndex(row, column, id(a)) #This
is still OK after masking to 32bit
print "Next two values should be the same"
print "indexInternalId = ", index.internalId()
print "id(a) = ", id(a), "0x%x" % id(a)
print "Forcing to be the same with a 32 bit mask"
print "indexInternalId = ", index.internalId() & mask
print "id(a) = ", id(a) & mask
return index
if __name__ == "__main__":
app = qt.QApplication([])
w = Model()
w.index(0,0,None)
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt