I wanted to migrate QPixmap from c ++ to qml. I created a class with the parent QQucikImageProvider
class test : public QQuickImageProvider
{
Q_OBJECT
public:
test():QQuickImageProvider(QQuickImageProvider::Pixmap)
{
}
QPixmap requestPixmap(const QString & id, QSize * size, const QSize & requestedSize)
{
int width = 100;
int height = 50;
if (size)
*size = QSize(width, height);
QPixmap pixmap(requestedSize.width() > 0 ? requestedSize.width() : width,
requestedSize.height() > 0 ? requestedSize.height() : height);
pixmap.fill(QColor(id).rgba());
return pixmap;
}
};
And declared it in the main.cpp
int main(int argc, char *argv[])
{
...
VK::test *imgProv = new VK::test();
QQmlApplicationEngine engine;
engine.addImageProvider("myprovider",imgProv);
...
}
But at compilation I received the following errors:
moc_api.cpp:-1: error: undefined reference to `_imp___ZN19QQuickImageProvider11qt_metacastEPKc'
moc_api.cpp:-1: error: undefined reference to `_imp___ZN19QQuickImageProvider11qt_metacallEN11QMetaObject4CallEiPPv'
moc_api.cpp:-1: error: undefined reference to `_imp___ZN19QQuickImageProvider16staticMetaObjectE'