2013-12-10 3 views
0

У меня проблема прямо сейчас с моей мини-игрой, которую я делаю. Проблема заключается в следующем: я создал редактор уровней для своей игры, и поэтому мне пришлось создать свой собственный делегат и модель, проблема возникает, когда я пытаюсь редактировать через фигурирующий (что скорее создает малярный путь). Затем я возвращаю painterpath через данные, но когда я пытаюсь нарисовать его с моим делегатом, кварта говорит мне следующее сообщение об ошибке:Преобразование QVariant в QPainterPath

/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 

Но это не сработало>. < Спасибо, если вы можете мне помочь Возможное решение, есть ли вообще создать pixmap из живописного пути? Я мог бы просто вернуть pixmap вместо малярного пути.

+0

Вы сначала объявили QPainterPath как мета-тип? См. Http://qt-project.org/doc/qt-5.0/qtcore/qmetatype.html#Q_DECLARE_METATYPE – ypnos

ответ

2

Похоже, вам нужно использовать Q_DECLARE_METATYPE макрос QPainterPath

Как

Q_DECLARE_METATYPE (QPainterPath) 

Here документация для того же.

Смежные вопросы