QVariant转换为QPainterPath

时间:2013-12-10 00:43:41

标签: c++ qt qvariant

我正在制作我的迷你游戏时遇到问题。问题如下:我为我的游戏创建了一个关卡编辑器,因此我不得不创建自己的委托和模型,当我尝试通过一个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

但这不起作用&gt;。&lt;谢谢,如果你能帮助我 可能的解决方案,无论如何都要从painterpath创建一个pixmap?我可以简单地返回像素图而不是画家路径。

1 个答案:

答案 0 :(得分:2)

看起来你需要在QPainterPath中使用Q_DECLARE_METATYPE宏

喜欢

Q_DECLARE_METATYPE (QPainterPath)

Here是相同的文档。