我正在尝试创建一个委托以将自定义小部件绘制为图标模式下列表视图中的元素。我或多或少地工作,但我无法让小部件在正确的位置绘制,似乎考虑到主窗口上的(0,0)原点而不是列表视图的原点,它们正在被绘制。我需要传递什么才能在正确的位置呈现小部件?我知道我可以传递一个偏移量...如何计算主窗口和列表视图之间的偏移量?
这是我的委托上的绘制方法(源自 QStyledItemDelegate)
def paint(self, painter, option, index):
painter.save()
if option.state & QStyle.State_Selected:
painter.fillRect(option.rect, option.palette.highlight());
model = index.model()
myWidget = model.listdata[index.row()]
myWidget.setGeometry(option.rect)
myWidget.render(painter, option.rect.topLeft() )
painter.restore()
谢谢
/J