[PyQt] Access to QSharedMemory with buffer protocol

Hans-Peter Jansen hpj at urpla.net
Mon Nov 1 22:00:06 GMT 2010

Hi Phil,

end of July last year, Alexandre Raczynski asked about accessing 
QSharedMemory, and you replied, that:

mutable_data = buffer(sharedMemory.data())

...should give _write_ access to the memory.

Hmm, not here:

$ python
Python 2.6 (r26:66714, Mar 30 2010, 00:30:21) 
[GCC 4.3.2 [gcc-4_3-branch revision 141291]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from PyQt4 import QtCore
>>> shmem = QtCore.QSharedMemory("xxx")
>>> shmem.create(10)
>>> shmem.lock()
>>> b = buffer(shmem.data())
>>> repr(b)
'<read-only buffer for 0xb74a37a0, size -1, offset 0 at 0xb6c0f9a0>'
>>> b = buffer(shmem.data(), 0, 10)
>>> repr(b)
'<read-only buffer for 0xb74a3710, size 10, offset 0 at 0xb6c0f9c0>'

Both attempts to create a buffer object resulted in read-only buffers, 
that refuse getting modified. I must be doing something wrong, but 
there's not much room left for manoeuvring..


python: 2.6
sip: 4.12-snapshot-12acbffd0085
qt4: 4.7.0
pyqt4: 4.8.1

More information about the PyQt mailing list