我有數據庫包括名為(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
提交
取消