Hi, I got it.

Someone may also need this. I am trying to serialize QPixmap to send
it over network. Here's the solution. Qt classes cannot be pickled.

------------
pixmap = ````This is a pixmap already in memory''''
buffer = QBuffer()
pixmap.save(buffer, 'XPM')
data = buffer.getData()
-----------

from qt import *
from cStringIO import StringIO

class QBuffer(QIODevice):

   def __init__(self):
       QIODevice.__init__(self)
       self.open( IO_ReadOnly)

   def open(self, mode):
       self.__io = StringIO()
       return True

   def close(self):
       self.__io.close()

   def flush(self):
       self.__io.flush()

   def readAll(self):
       return self.__io.read()

   def getch(self):
       return self.__io.read(1)

   def readBlock(self, size):
       result = self.__io.read(size)
       if result:
           return (result,)

       return None

   def writeBlock(self, data, length=None):
       if type(data) == QByteArray:
           data = data.data()

       self.__io.write(data)

       return len(data)

   def getData(self):
       return self.__io.getvalue()


On 9/4/06, Mike Tammerman <[EMAIL PROTECTED]> wrote:
Hi,

I am trying to save a QPixmap onto a str object. I tried using
QBuffer. But QBuffer does not exist in pyqt3. I am using the kubuntu's
default pyqt3 package which is 3.5.1. Sip version is 4.3.2.

I don't want to use temporary files. Can you help me.

Mike


_______________________________________________
PyKDE mailing list    [email protected]
http://mats.imk.fraunhofer.de/mailman/listinfo/pykde

Reply via email to