qt5.6加载网页加载完成后进行的操作实施,包含如何在qt中运行JavaScript

4 篇文章 1 订阅

https://blog.csdn.net/qq_38255285/article/details/87917887   前序工作

总的就一句吧 

//地图初始化
void Phantom::mapInit()
{
    QString strMapPath="file:///";
    strMapPath+=QCoreApplication::applicationDirPath();
    strMapPath+="/map1.html";
    qDebug() << strMapPath ;
     ui->webview->load(QUrl(strMapPath));

//webengine中的loadfinished函数表示加载完毕,通过其返回值判断是否完成
   connect(ui->webview,SIGNAL(loadFinished(bool)) ,this,SLOT(maploadfinish(bool)));//加载地图完成后执行loadFinished函数

}

 connect(ui->webview,SIGNAL(loadFinished(bool)) ,this,SLOT(maploadfinish(bool)));主要是加了这一句

信号发出者的指针是ui->webview,就是前文那个ui中的被提升的QFrame,信号是loadFinished(bool),返回类型是boolean;信号接收就是主窗口,接收函数是maploadfinish(bool)

在头文件(.h)中,用于定义信号槽的文本申明

private slots:
        void maploadfinish(bool finish); //地图加载完成

在文件(.c)中, 编写函数,如果信号槽中loadFinished(bool)返回为true则给maploadfinish函数输入赋值为true,正好调用true的部分。

void Phantom::maploadfinish(bool finish)
{
        if(finish)
        {
        double lon, lat;
        lon = 118.72000;
        lat = 32.20100;
        QString command = QString("addpoint(%1,%2)").arg(QString::number(lon[i], 'f', 6)).arg(QString::number(lat[i], 'f', 6));
        qDebug()<<command;
        i->webview->page()->runJavaScript(command);
        }
        else
        {
        }
}

 还是通过ui->webview->page()->runJavaScript(),被提升的QFrame调用page()->runJavaScript(),括号里面是QString类型,command的值具体是addpoint(118.720000,32.201000),调用了js程序中的addpoint函数

实施的效果为在加载完成后进行输出一个定位点。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值