如何在Python的Qtable中从MySQL数据库中获取blob类型?
我创建了一个简单的应用程序,用来从数据库中显示图片。在这里,我在mysql数据库中有一个表,里面有一个BLOB类型的列,但我不知道怎么把这个BLOB类型的数据在pyqt的表格中显示出来……
这是我用来从数据库中显示数据的代码:
myCursor.execute("SELECT no,people,image FROM absen")
row= myCursor.fetchall()
self.table.setRowCount(len(row))
self.table.setColumnCount(3)
for i in range (len(row)):
for j in range (1):
item = Qt.QTableWidgetItem('%s' % (jum_baris[i][j + 1]))
self.table.setItem(i, j, item)
当我运行这个程序时,表格中的图片列只显示“ÿØÿà”,而不是图片……请帮我解决这个问题……
1 个回答
0
你需要把存储在数据库里的字节数据转换回图片。否则,这些数据就只会被当作字符串来处理。
这个代码可能可以帮你完成这个任务:
img = QImage.fromData(<your_blob>, <length_of_the_blob>, <image_format>)
你可以查看 http://qt-project.org/doc/qt-4.8/qimage.html 来了解更多其他的方法。
一旦你得到了图片,接下来可以有多种方式在表格中显示它。这里有一种方法:
https://stackoverflow.com/a/14368007/2319400