【问题标题】:QBuffer does not fill QByteArray problemQBuffer 不填充 QByteArray 问题
【发布时间】:2011-01-12 12:17:47
【问题描述】:

所以,我尝试用数据填充 QByteArray(然后将其保存到数据库中)。我使用 QFileDialog 来获取图片,使用 QPixmap 在网格中绘制它,它工作正常,但是打算通过 sqlalchemy 存储在 db 中的 QByteArray 在 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()

那么,我做错了什么?

【问题讨论】:

    标签: qt qt4 pyqt


    【解决方案1】:

    我觉得你需要在调用pixmap.save()的时候指定图片文件格式,像这样:

    pixmap.save(buffer, 'PNG')
    

    希望这会有所帮助,问候

    【讨论】:

    • 谢谢!它有效,我昨天不小心找到了它:) 虽然很奇怪,但格式参数不是必需的,如果 QPixmap 无法通过字节数组标头确定格式,而且它显然是一个错误,它无需一句话就“保存”了。
    猜你喜欢
    • 2016-10-01
    • 2019-01-20
    • 2017-11-04
    • 1970-01-01
    • 2011-03-28
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多