2011-01-12 148 views
1

因此,我嘗試用數據填充QByteArray(然後將其保存到數據庫)。我使用QFileDialog來獲取圖片,QPixmap在網格中繪製它,並且它工作正常,但QByteArray,旨在通過sqlalchemy存儲在數據庫中的QPixmap :: save()後爲空。 除此之外,連接到bytesWritten和readyRead的信號也不會觸發。 Pixmap可以,網格包含setData後的有效圖像。QBuffer不會填充QByteArray問題

 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() 

那麼,我在做什麼錯了?

回答

2

我認爲你需要指定圖像文件格式調用pixmap.save()時,水木清華這樣的:

pixmap.save(buffer, 'PNG') 

希望這有助於

+0

感謝祺!它的工作原理,我昨天意外地發現它:)這是奇怪的,格式參數不是必需的,如果QPixmap無法確定字節數組頭的格式,它顯然是一個錯誤,它'保存'沒有一個字。 – 2011-01-13 09:04:58