self.icon = 'ico.png'
item = QTableWidgetItem(QtGui.QIcon(self.icon), "")
item.setData(Qt.DecorationRole, item)
self.table_widget.setItem(0, 0, item)
当我将它包装在 DisplayRole 中时,它会显示,但我需要它在 DecorationRole 中以便稍后保存。
self.icon = 'ico.png'
item = QTableWidgetItem(QtGui.QIcon(self.icon), "")
item.setData(Qt.DecorationRole, item)
self.table_widget.setItem(0, 0, item)
当我将它包装在 DisplayRole 中时,它会显示,但我需要它在 DecorationRole 中以便稍后保存。
根据文档:
Qt.DisplayRole要求传递的对象可转换为类型QString(字符串)。Qt.DecorationRole要求传递的对象可转换为以下三种类型之一:(QColor颜色)、QIcon(图标)、QPixmap(图像)。问题是
QTableWidgetItem我们只转换为字符串。结果,包装器元素setData()为图像返回一个空字符串。为了解决这个问题,你需要移除实例上的包装器
QIcon并直接传递图像: