Bonjour,
De mémoire, ceci devrait fonctionner.
Dans le .qml :
1 2 3 4 5 6 7 8 9 10
| import Example 1.0
// ...
function myFunc()
{
var nodes = myClass.getNodes();
for (var i = 0; i < nodes.length; ++i)
doSomething(nodes[i]);
} |
Côté C++ :
1 2 3 4 5 6 7
| QVariantList MyClass::getNodes()
{
QVariantList list;
for (int i = 0; i < 10; ++i)
list.append(new Node(i));
return list;
} |
main.cpp :
qmlRegisterUncreatableType<Node>("Example", 1, 0, "Node", "Core class");
Vous pouvez également fonctionner non pas par allocation dynamique mais par copie, mais dans ce cas il vous faudra utiliser la ligne suivante à la place du qmlRegister :
qRegisterMetaType<Node>("Node");
Dans le cas que je vous ai montré, attention à la libération de la mémoire et attention aussi à bien hériter de QObject. Vous pourrez alors manipuler l'objet par le biais de ses propriétés.
Bonne journée,
Louis
Partager