我正在制作的迷你游戏现在有一个问题。问题如下:我已经为我的游戏创建了一个关卡编辑器,因此我必须创建自己的代理和模型,当我试图通过shapeeditor进行编辑时,这个问题就会发生(这更可能会创建一个painterpath )。然后我通过数据返回painterpath,但当我尝试用我的委托绘制它时,qt告诉我以下错误:
/usr/include/qt4/QtCore/qmetatype.h:169: error: 'qt_metatype_id' is not a member of 'QMetaTypeId<QPainterPath>'我不太确定为什么会出现这个错误。有关该项目的源代码的信息,如果需要,我可以给出。但我只是在想,从qvariant到qpainterpath的转换是不可能的。它们必须是一种实现的方法。
注意:我尝试执行以下操作
QVariant var = index.model()->data(index, Qt::DecorationRole);
QPainterPath path = var.value<QPainterPath>(); // The error occurs here, this is line 169但是这不起作用,>.<谢谢,如果你能帮我解决这个问题,有没有办法从画路中创建一个像素图?我可以简单地返回像素图而不是painterpath。
发布于 2013-12-10 13:18:26
看起来您需要在QPainterPath中使用Q_DECLARE_METATYPE宏
喜欢
Q_DECLARE_METATYPE (QPainterPath)Here是同样的文档。
https://stackoverflow.com/questions/20483890
复制相似问题