la programación Qt: Cómo utilizar el tipo de datos personalizados en QVariantMap?
-
29-09-2019 - |
Pregunta
Estoy escribiendo una aplicación Qt que se asigna una clase de C ++ al objeto Javascript en QtWebKit. En primer lugar permítanme explicar lo que estoy tratando de hacer:
Tengo una clase heredada de QObject:
class myobj : public QObject {
Q_OBJECT
public:
myobj();
~myobj();
pulbic slots:
void getData();
}
Y en otra clase He intentado añadir myObj casos a QVariantMap:
QVariantMap anotherClass::getObj() {
myobj* obj1 = new myobj();
myobj* obj2 = new myobj();
QVariantMap items;
items.insert(QString("0"), QVariant(*obj1));
items.insert(QString("1"), QVariant(*obj2));
return items;
}
Y entonces me dieron el siguiente error:
error: no matching function for call to ‘QVariant::QVariant(myobj&)’
Así que traté de añadir declaraciones:
Q_DECLARE_METATYPE(myobj);
Pero tengo:
error: ‘QObject::QObject(const QObject&)’ is private
Cualquier idea sobre esto?
Solución
Al igual que el compilador dijo, ningún constructor de QVariant
existe que echar un myobj
como parámetro. ¿Ha tratado de utilizar la función de qVariantFromValue
lugar?
creo que esto es lo que está buscando.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow