Чтобы передать объект из C ++ в QML в качестве возвращаемого значения функции, тип возвращаемого значения должен быть QVariant
, а не QVariantMap
, даже если это тип в коде C ++. Так что просто измените вашу initialize
сигнатуру функции на
QVariant initialize();
без изменения чего-либо еще, и тогда вы можете получить доступ к свойствам.
Что касается вашего последующего комментария о желании вызвать методы для этого возвращенного объекта, это невозможно; возвращаемый объект - это просто набор пар имя-значение. Если вы хотите, чтобы объект имел, скажем, свойство id
, вам необходимо insert
значение с этим ключом, равное QVariantMap
в C ++, прежде чем возвращать его.