本以为会很容易,其实不容易,我尝试着在变量前加 Q_INVOKABLE 来进行QML调用,但是行不通!
但我想了一个下下策:既然QML可以调用CPP中的函数,函数又可以调用变量,那我写一个 返回 变量的函数不就可以了。设计如下:
returnData(u_char returnData)
{
return returnData;
}
========================================================
2012年10月5日22:26:57:这个方法好像不靠谱,这个等于返回的QML中填进去的形参,这个要实现得好好想想办法……
2012年10月5日22:59:32:下边这个可以了:
//在类体中
Q_INVOKABLE const static char a=1;
//在main.cpp中
view.rootContext()->setContextProperty("a",ApplicationData::a);
//在QML中
text:a
这就是坚持的力量!-暂时想不起来什么好办法了,就它了吧!尽管每个变量都得来这一遭,还好我用的变量少……
2012年10月5日23:31:16:又想到一个糟糕的事,我用的不是单纯的变量,是数组!这可怎么办呢?
==========================================================================
2012年10月5日23:43:47:数组调试通了!!
改动如下所示:
//在类体中
Q_INVOKABLE const static char a[5];
//在main.cpp中
view.rootContext()->setContextProperty("a",*ApplicationData::a);
//在QML中
text:a+n
在ApplicationData::a前加“*”,在a后加'n'(n代表a数组中的下标)
不过也可以转换角度从CPP中操作QML组件的属性!这篇文章有解绍:http://www.cppblog.com/lauer3912/archive/2011/08/04/152472.html