在PyQt5中,我尝试使用QItemDelegate在表格的单元格中显示图标,而不是文本字符串。实际上,我使用以下命令构造QItemDelegate的子类:
de = MyDelegate(self.attribute_table_view)
这里的dself.attribute_table_view
是一个` `QTableView‘对象。
我尝试使用以下命令在特定列的每个单元格中绘制一个图标:
class MyDelegate(QItemDelegate):
def __init__(self, parent=None, *args):
QItemDelegate.__init__(self, parent, *args)
def paint(self, painter, option, index):
painter.save()
value = index.data(Qt.DisplayRole)
line_1x = QPixmap('line_1x.png')
painter.setBrush(Qt.gray)
painter.setPen(Qt.black)
painter.drawPixmap(QRectF(0, 0, 48, 24), line_1x, QRectF(0, 0, 48, 24))
painter.restore()
使用painter.drawPixmap()
,我如何告诉它像使用painter.drawText(option.rect, Qt.AlignVCenter, value)
一样在表格中绘制每个单元格
此外,我还注意到,如果我输入的文件名对于.png文件不存在,则当前脚本不会报告任何错误。如果.png文件不存在,应该由报告错误吗?
我当前的模型是一个QgsAttributeTableModel,我想用图标呈现一列中所有单元格的当前字符串值,其中使用的图标取决于字符串值。
https://stackoverflow.com/questions/52545316
复制相似问题