我有数据库包括名为(IMG)的BLOB列,当按代码搜索时,我需要什么,显示项目图像,但结果总是像这样(caV\xd6\xf7\xd0\xec]c\x1b\x95\xe2\xa4\x00\xe3\xd3\x82L\xc9L\xa2W8H\xaf\xe4\xe0\x9f\xcb\x7f\xb5\xbautm]\x94\'\xb6\xb7p\xa7{\xbffU\xb7Q\xd5\x8d\xe3\xe1\xb....等)import ioimport base64from PyQt5 import QtGuifrom ui import Ui_MainWindowfrom PyQt5.QtCore import *from PyQt5.QtGui import *from PyQt5.QtWidgets import *import astimport sqlite3import sysclass HmcProject ( QMainWindow, Ui_MainWindow ): # ,FORM_CLASS def __init__(self): QMainWindow.__init__ ( self ) super ( HmcProject, self ).__init__ () self.setupUi ( self ) self.Handle_Buttons () self.Db_Connect () self.Image_Retrive() def Db_Connect(self): self.connection = sqlite3.connect ( 'deals_db.db' ) cursor = self.connection.cursor () def Handle_Buttons(self): self.pushButton.clicked.connect(self.Image_Retrive) def Image_Retrive(self): try: cursor = self.connection.cursor () itemsearch = self.lineEdit_Item_NameS_3.text () sql = (''' SELECT IMG FROM deals_data WHERE ITEM_CODE= ? ''') cursor.execute ( sql,[(itemsearch)]) data = cursor.fetchone () print ( data [0]) pix= QPixmap.loadFromData(data[0]) self.label.setPixmap(pix) except: passdef main(): app = QApplication ( sys.argv ) window = HmcProject () window.show () app.exec_ ()if __name__ == '__main__': main ()
1 回答
汪汪一只猫
TA贡献1898条经验 获得超8个赞
您正在尝试使用 loadFromData()
作为静态函数来加载 pixmap,但事实并非如此。
此外,该函数返回 一个 ,报告加载是否成功。bool
您必须首先创建一个新的 QPixmap 实例,然后加载数据,如果已加载,则最后在标签中显示它:
pix = QPixmap() if pix.loadFromData(data[0]): self.label.setPixmap(pix)
PS:避免在括号周围使用空格字符,它们是不必要的和分散注意力的;另外,不要混淆和混合基类上的调用,在python3中,调用super().__init__()
一次就足够了,即使对于多个继承类也是如此。
添加回答
举报
0/150
提交
取消