如何从c++;在BB10中 如何从BB10../P>中的C++代码调用QML函数

如何从c++;在BB10中 如何从BB10../P>中的C++代码调用QML函数,c++,qt,blackberry-10,blackberry-cascades,C++,Qt,Blackberry 10,Blackberry Cascades,我的QML函数- function loadingData(data) { evaluateJavaScript("createChart('" + data + "')") } 现在如何调用C++中的“加载数据”函数?< /p> 请帮助…您可以轻松地从C++访问QML元素的属性,但是调用函数将是困难的。 但你可以从C++发出信号,并将QML中的函数连接到信号中并在那里执行所需的代码。 将C++对象暴露为QML qmlDocument->setContextProperty("

我的QML函数-

function loadingData(data) {
    evaluateJavaScript("createChart('" + data + "')")
}
现在如何调用C++中的“加载数据”函数?< /p>
<>请帮助…

您可以轻松地从C++访问QML元素的属性,但是调用函数将是困难的。

但你可以从C++发出信号,并将QML中的函数连接到信号中并在那里执行所需的代码。

将C++对象暴露为QML

qmlDocument->setContextProperty("_someClass", someClass);
其中定义了信号,比如说
someSignal()

当您需要调用QML函数时,
emit someSignal()

Q>连接函数与C++信号

someClass.someSignal.connect(qmlFunction);

function qmlFunction() {
    ...
}

您可以找到详细信息。

您可以轻松访问C++中的QML元素的属性,但是调用函数将是困难的。

但你可以从C++发出信号,并将QML中的函数连接到信号中并在那里执行所需的代码。

将C++对象暴露为QML

qmlDocument->setContextProperty("_someClass", someClass);
其中定义了信号,比如说
someSignal()

当您需要调用QML函数时,
emit someSignal()

Q>连接函数与C++信号

someClass.someSignal.connect(qmlFunction);

function qmlFunction() {
    ...
}
您可以找到详细信息

首先,在BB10上不清楚,我知道的是在桌面上,但方法可能没有区别

双向:

1) 信号和插槽;指

2) 元对象

示例(qt 4.8):

在QML元素中需要一个ID,以便我们可以在C++中获取对象:

QDeclarativeView*mpView=//从任何函数获取视图
QObject*rootObject=mpView->rootObject()//这是QML视图的根对象
QObject*obj=rootObject->findChild(/*您的元素ID*/);
如果(obj!=NULL)
{  
QVariant data=//需要输入的内容;
bool ret=QMetaObject::invokeMethod(obj,“加载数据”,
Q_ARG(QVariant,data));
如果(!ret)QDebug
首先,在BB10上不清楚,我知道的是在桌面上,但方法可能没有区别

双向:

1) 信号和插槽;请参阅

2) 元对象

示例(qt 4.8):

在QML元素中需要一个ID,以便我们可以在C++中获取对象:

QDeclarativeView*mpView=//从任何函数获取视图
QObject*rootObject=mpView->rootObject();//这是QML视图的rootObject
QObject*obj=rootObject->findChild(/*您的元素ID*/);
如果(obj!=NULL)
{  
QVariant data=//需要输入的内容;
bool ret=QMetaObject::invokeMethod(obj,“加载数据”,
Q_ARG(QVariant,data));
如果(!ret)Qdebug可能重复的