这两天用到lambda函数了 才了解了一点C11特性之一的 lambda函数
// testestset 为类的成员对象。 下面这样写会报错
view->page()->runJavaScript("savepoints()", [](const QVariant &v){
qDebug()<<testestset;
});
这是一个Qt调用JS获取返回值的一个函数,qt用到了lambda进行接收返回值(QVariant:不确定类型格式);在其中我想调用qt类的成员函数和对象。现在介绍做法
如果lambda函数值调用成员函数,吧这个类成员函数声明称静态的就行了 ,但是如果这个成员函数中调用了类的成员对象,那么不好意思,这个方法就不奏效了,只能用方法2;
方法2:
在lambda函数的[ ] 中加上 & 或者 this ,这样就可以在这个函数中调用类的成员函数和成员对象了。
view->page()->runJavaScript("savepoints()", [this](const QVariant &v){
qDebug()<<testestset;
});或者
view->page()->runJavaScript("savepoints()", [&](const QVariant &v){
qDebug()<<testestset;
});