QQmlContext: setContextProperty не работает при использовании в Component.OnCompleted
Я устанавливаю свойство контекста «CallBackAPI», которое имеет две функции: ведение журнала и OnButtonClicked.
Он отлично работает при использовании в MouseArea, OnClicked Events. Но CallBackAPI используется внутри Component.OnCompleted, он дает ReferenceError: CallBackManager не определен
Я не уверен, что здесь отсутствует. Может ли кто-нибудь помочь?
Код C ++
QQuickView* view = new QQuickView();
view->setObjectName("TestObject");
QQmlContext* context = view->rootContext();
view->setSource(QUrl::fromLocalFile(strQmlPath));
context->setContextProperty("CallBackAPI", CallBackAPIInstance);
QWidget* container = QWidget::createWindowContainer(view, getWidget());
container->setObjectName(QString("MyWidgetObject"));
container->raise();
Код QML
import QtQuick 2.15
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.0
import QtQuick.Window 2.2
import QtCharts 2.0
Item{
id: root
width: 780
height: 480
Rectangle {
id: footer1
x: 0
y: 421
width: 780
height: 59
color: "#c2bba7"
Button {
id: resetButton
x: 50
y: 1
width: 150
height: 50
text: "Reset"
font.pixelSize: 18
objectName: "resetButton"
onClicked: {
CallBackAPI.onButtonClick(HandleName, objectName,false)
}
Component.onCompleted: {
CallBackAPI.logging(LOG_DEBUG, "TestCompleted");
}
}
Button {
id: saveButton
x: 600
y: 1
width: 150
height: 50
text: "Save"
font.pixelSize: 18
objectName: "saveButton"
onClicked: {
CallBackAPI.onButtonClick(HandleName, objectName,false)
}
Component.onCompleted: {
CallBackAPI.logging(LOG_DEBUG, "TestCompleted");
}
}
}
}