QBuffer没有填写QByteArray问题

时间:2011-01-12 12:17:47

标签: qt qt4 pyqt

因此,我尝试用数据填充QByteArray(然后将其保存到数据库中)。我使用QFileDialog来获取图片,QPixmap将其绘制在网格中,并且它工作正常,但是QByteArray(通过sqlalchemy存储在db中)在QPixmap :: save()之后是空的。 此外,连接到bytesWritten和readyRead的信号也不会触发。 Pixmap没问题,网格包含setData之后的有效图像。

        ba = QtCore.QByteArray()
        buffer = QtCore.QBuffer(ba)
        buffer.bytesWritten.connect(self.b)
        buffer.readyRead.connect(self.c)
        buffer.open(QtCore.QIODevice.WriteOnly)
        pixmap.save(buffer)
        buffer.close()
        ba = buffer.data()

那么,我做错了什么?

1 个答案:

答案 0 :(得分:2)

我认为你需要在调用pixmap.save()时指定图像文件格式,如下所示:

pixmap.save(buffer, 'PNG')

希望这有帮助,尊重