Проще всего было бы написать QuickItem на C++. Даже когда его просто небольшой компонент, который просто имеет название и версию. Тогда он легко доступен в C++ и его самом чистом пути, чтобы разделить вид и логику. Затем вы можете просто определить свойства с помощью известного макроса Q_PROPERTY.
Если вы действительно хотите использовать только QML написанные компоненты, и не хотите, чтобы написать что-нибудь в C++, есть решение уже упоминались в этой странице: http://qt-project.org/doc/qt-5/qtqml-cppintegration-interactqmlfromcpp.html
Цитирования соответствующей части от «Доступа к членам QML Object Type from C++ ":
QQmlEngine engine;
QQmlComponent component(&engine, "MyItem.qml");
QObject *object = component.create();
qDebug() << "Property value:" << QQmlProperty::read(object, "someNumber").toInt();
QQmlProperty::write(object, "someNumber", 5000);
qDebug() << "Property value:" << object->property("someNumber").toInt();
object->setProperty("someNumber", 100);
Так что QQmlProperty может вам помочь.
Как я не знаю, какова ваша цель, я ничего не буду рекомендовать. В любом случае, на мой взгляд, первый способ просто написать элемент в C++ во многих случаях намного чище, чем пытаться получить свойства из Qml.
при использовании функции "component.create()", создает ли новый экземпляр? Как насчет двух файлов C++, оба файла хотят получить доступ к уже созданному QObject. Как это реализовать? Благодаря! – user1914692