Mam wykonaną metodę C++ Q_INVOKABLE. Mogę nazwać tę metodę z QML i działa, gdy zwraca podstawowe typy (jak QString). Ale nie mogę z niestandardowym typem. Jak mam to zrobić? Czy powinienem zamiast tego zwrócić QVariant? Najlepiej byłoby, jeśli to możliwe, zwrócić wskaźnik do mojego typu niestandardowego.Metoda Q_INVOKABLE zwracająca niestandardowy typ C++
EDIT zrobić:
qmlRegisterType<MyType>("Mine", 1, 0, "MyType");
qmlEngine->rootContext()->setContextProperty("testObj", new MyType());
mogę używać testObj globalnego obiektu lub utworzyć komponent MyType QML. Ale nie mogę go używać w niektórych kodach javascript jako typ zwracany z Q_INVOKABLE C++.
wielkie dzięki. Spróbuję wtedy z QVariant. Ponadto dziękuję za sugestię dotyczącą używania Q_PROPERTY zamiast. W moim przypadku wywołanie metody polega na pobraniu obiektu, aby właściwość miała sens. Dzięki! – Korchkidu
Zgodnie z dokumentacją powinno być możliwe zwrócenie niestandardowych typów C++ z metody Q_INVOKABLE do QML. Czy jest to możliwe, czy jest to błąd w dokumentacji? – Korchkidu
@Korchkidu: Jest to możliwe, jeśli prawidłowo zarejestrujesz typ, tak myślę. – lpapp