使用Python将sqlite3数据库中的图像显示到QTableWidget中的列中
在查看了这里和其他地方的各种示例之后,我无法在“mydb.db”中显示图像,这是我的SQlite3数据库,在python中是我的表QTableWidget。这是我的密码使用Python将sqlite3数据库中的图像显示到QTableWidget中的列中,python,sqlite,pyqt5,Python,Sqlite,Pyqt5,在查看了这里和其他地方的各种示例之后,我无法在“mydb.db”中显示图像,这是我的SQlite3数据库,在python中是我的表QTableWidget。这是我的密码 def fetch_all_learner_data(self): connection= sqlite3.connect("mydb.db") query = "SELECT NAME,ADM,CLASS,STREAM,CATEGORY,GENDER,COUNTY,PARENT,PARENT_CONTACT,P
def fetch_all_learner_data(self):
connection= sqlite3.connect("mydb.db")
query = "SELECT NAME,ADM,CLASS,STREAM,CATEGORY,GENDER,COUNTY,PARENT,PARENT_CONTACT,PHOTO FROM learner_data"
result = connection.execute(query)
self.classes_table.setRowCount(0)
for row_number,row_data in enumerate(result):
self.classes_table.insertRow(row_number)
for column_number,data in enumerate(row_data):
self.classes_table.setItem(row_number,column_number,QTableWidgetItem(str(data)))
connection.commit()
connection.close()
这就是最终出现在qtable的image列上的内容,这也确实减慢了我的系统
如何解决此问题?您必须使用QPixmap基于数据构建QIcon:
def fetch_all_learner_data(self):
connection = sqlite3.connect("mydb.db")
query = "SELECT NAME,ADM,CLASS,STREAM,CATEGORY,GENDER,COUNTY,PARENT,PARENT_CONTACT,PHOTO FROM learner_data"
result = connection.execute(query)
self.classes_table.setRowCount(0)
for row_number, row_data in enumerate(result):
self.classes_table.insertRow(row_number)
for column_number, data in enumerate(row_data):
it = QTableWidgetItem()
if column_number == 9:
pixmap = QPixmap()
pixmap.loadFromData(data)
it.setIcon(QIcon(pixmap))
else:
it.setText(str(data))
self.classes_table.setItem(row_number, column_number, it)
connection.commit()
connection.close()