如何在Python的Qtable中从MySQL数据库中获取blob类型?

0 投票
1 回答
1194 浏览
提问于 2025-04-18 07:09

我创建了一个简单的应用程序,用来从数据库中显示图片。在这里,我在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

撰写回答