2013-12-10 39 views
0

我現在有一個問題,我正在製作我的迷你遊戲。問題如下:我爲我的遊戲創建了關卡編輯器,因此我必須創建自己的委託和模型,當我嘗試通過shapeeditor進行編輯時(更有可能創建painterpath),會出現問題。然後,我通過數據返回painterpath但是當我試圖用我的代理繪製它,QT告訴我下面的錯誤: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而不是painterpath。

+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是相同的文檔。

相關問題