如何从c++;在BB10中 如何从BB10../P>中的C++代码调用QML函数
我的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("
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可能重复的