最近在上位机软件加入一个qtwebkit模块,用于加载google maps(V3)。写好google maps的html文件之后,在chrome和IE中显示均正常,但是一旦用qtwebview加载后只能显示基本的地图,鼠标拖动和滚轮放大等交互操作均无法响应,由于原来的google maps html文件调试正常,所以考虑是qtwebview中默认的浏览器引擎造成的原因。
查阅了qtwebview类的用法,发现其中有一个虚函数QString QWebPage::userAgentForUrl ( const QUrl & url ) const,这个一个设置用户代理的函数,重载该函数可以实现更改qtwebview的默认浏览器代理,查阅相关资料后,做如下改动(代码来源: