首页| 论坛| 消息

标题:QWebEnginePage的runjavascript怎样取返回值?
作者:纵刀少年
日期:2017-03-28 08:55
内容:

我会执行js的语句,向HTML页面提交值。现在的问题就是,怎样从HTML页面获取值。
比如,QWebEnginePage上有一个vara=13;
且有JS函数
function geta()
{
return a;
}
我要获取a的值。
QWebEnginePage的runjavascript的方法原型有3个,但返回值都是void的,其中一个形参FunctorOrlambda我看不懂啥意思。

.


#1 [never_forget 03-28 15:22]
看到 resultCallback 了吗?那就是这个函数的返回值了,这是一个回调函数,runjavascript() 函数的返回结果就是回调函数的入口参数,可以看看我的这篇博客....
http://blog.csdn.net/rvoid/article/details/59542268
#2 回 never_forget 的帖子 [纵刀少年 03-28 17:12]
never_forget:看到 resultCallback 了吗?那就是这个函数的返回值了,这是一个回调函数,runjavascript() 函数的返回结果就是回调函数的入口参数,可以看看我的这篇博客....
http://blog.csdn.net/rvoid/article/details/59542268

 (2017-03-28 15:22) 
QString d("haha");
page->runJavaScript("maccount;", [&d](const QVariant &v) { d=v.toString();});
qDebug()
#3 [纵刀少年 03-28 17:53]
自己研究到了!
关键就是在runjavaScript的第三个参数里,使用Lambda表达式,并且捕获参数列表用this,这样异步的也能在得到值后再去赋值了。代码参考如下:

page->runJavaScript("mjsession;",(const QVariant &v) {this->setJsession(v.toString());});
void MainWindow::setJsession(QString str)
{
ui->jessionLineEdit->setText(str);
}

回复 发表
主题 版块