У меня есть QtApp
и чистая библиотека C++. Библиотека C++ предоставляет один простой класс с именем MyCppLibApiClass
. QtApp
имеет класс, встроенный в main.qml
. Ниже приведен класс:
class MyQuickItem : public QQuickItem {
MyQuickItem();
}
Следуя коду qml
для quick item
:
import MyQuickItem 1.0
MyQuickItem {
id: myQuickItemID
visible: true
objectName: "myQuickItem"
}
Ниже приведен мой main.cpp
, показывающий, что я загружаю элемент qml
:
qmlRegisterType<MyQuickItem>("MyQuickItem", 1, 0, "MyQuickItem");
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml")));
return app.exec();
MyQuickItem
требуется доступ к экземпляру MyCppLibApiClass
. Как мне получить действительный экземпляр MyQuickItem
в main.cpp
? Мне нужно установить объект MyCppLibApiClass
в качестве члена в MyQuickItem
. Я могу сделать это, используя метод установки. Но прежде всего мне нужно получить действительный экземпляр для MyQuickItem
. Итак, Как получить доступ к MyQuickItem
в main.cpp
?
EDIT:
Я долго искал, прежде чем задавать этот вопрос. Я прочитал это ссылка. Кроме того, Этот вопрос размещенный мной, не получил мне точного ответа. Следовательно, перефразируя мой вопрос более четко, чтобы попытаться получить ответ. Оцените предложения к этому ..
qmlRegisterType
- person folibis   schedule 22.10.2016MyQuickItem
изQQuickItem
. Теперь, как мне получить доступ к экземпляруMyQuickItem
вmain.cpp
? - person TheWaterProgrammer   schedule 22.10.2016qmlRegisterType
, вы не должны его использовать. Он будет создан QML. - person folibis   schedule 22.10.2016MyQuickItem
, который QML создал после вызоваqmlRegisterType
. - person TheWaterProgrammer   schedule 22.10.2016MyQuickItem
в QML, чтобы я мог получить доступ к его объекту вmain.cpp
? - person TheWaterProgrammer   schedule 22.10.2016objectName
элементу QML, а такжеQQuickItem *myItem = engine.rootObjects()[0]->findChild<QQuickItem *>("myQuickItem");
- person folibis   schedule 22.10.2016myItem
описанным вами способом, смогу ли я вызвать метод, который я предоставил, для установки объекта чистого класса cpp? Вот так:myItem.setPureCppClassObject(cppObeject)
? - person TheWaterProgrammer   schedule 22.10.2016QQuickItem *myItem = engine.rootObjects()[0]->findChild<QQuickItem *>("myQuickItem");
оно прекрасно работает. Спасибо - person TheWaterProgrammer   schedule 23.10.2016