У меня сейчас проблема с моей мини-игрой, которую я делаю. Проблема заключается в следующем: я создал редактор уровней для своей игры, и поэтому мне пришлось создать свой собственный делегат и модель, проблема возникает, когда я пытаюсь редактировать с помощью редактора шейдеров (который, скорее всего, создает путь живописца). Затем я возвращаю путь живописца через данные, но когда я пытаюсь нарисовать его с моим делегатом, 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
Но это не сработало>.< Спасибо, если вы можете мне помочь
Возможное решение, есть ли в любом случае создать растровое изображение из маршрута живописца? Я мог бы просто вернуть растровое изображение вместо рисовальщика.
Похоже, вам нужно использовать макрос Q_DECLARE_METATYPE с QPainterPath
подобно
Q_DECLARE_METATYPE (QPainterPath)
Вот это документация для того же.
Других решений пока нет …