我正在制作的迷你游戏现在有问题。问题如下:我为游戏创建了一个关卡编辑器,因此必须创建自己的委托和模型,当我尝试通过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创建像素图?我可以简单地返回像素图而不是painterpath。
最佳答案
看起来您需要将Q_DECLARE_METATYPE宏与QPainterPath一起使用
喜欢
Q_DECLARE_METATYPE (QPainterPath)
Here是同一文档。
关于c++ - QVariant转换为QPainterPath,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20483890/