QWebView加载网页

Posted 朝十晚八

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QWebView加载网页相关的知识,希望对你有一定的参考价值。

开发环境:win10家庭中文版,vs2013,qt5.5.1

目的:使用webkit加载web页面代码如下:

#include

#include

#ifdef _DEBUG#pragma comment(lib, "Qt5WebKitWidgetsd.lib")

#pragma comment(lib, "Qt5WebKitd.lib")

#else

#pragma comment(lib, "Qt5WebKitWidgets.lib")

#pragma comment(lib, "Qt5WebKit.lib")

?

#endifm_WebView = new QWebView(this);  

QWebSettings * settings = m_WebView->settings();
QWebSettings::globalSettings();   
settings->setAttribute(QWebSettings::PluginsEnabled, true);  
settings->setAttribute(QWebSettings::JavaEnabled, true);  
settings->setAttribute(QWebSettings::javascriptEnabled, true);
settings->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
settings->setAttribute(QWebSettings::JavascriptCanAccessClipboard, true);   
settings->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);  
settings->setAttribute(QWebSettings::SpatialNavigationEnabled, true);  
settings->setAttribute(QWebSettings::LinksIncludedInFocusChain, true);
settings->setAttribute(QWebSettings::AcceleratedCompositingEnabled, true);
settings->setAttribute(QWebSettings::AutoLoadImages, true);

编译程序,使用dependency检测依赖动态库库,然后启动程序,加载网页一切正常,当加载视频和音频时出现异常,腾讯视频出现图1所示情况,爱奇艺 和优酷视频出现情况如图2,经过各种尝试,最终发现需要在exe同级目录下放置plugins文件夹,文件夹底下放置flash动态库 (NPSWF32.dll),或者自己下载一个动态库安装,这个动态库是firefox的flash player,测试结果如图3

技术分享图1腾讯视频
技术分享图2 爱奇艺测试结果
技术分享图3下载flash插件

上图3中的测试结果是在win7虚拟机上测试结果,win10上安装firefox的flash插件测试结构和上图一样

顺道说句:QT插件库(新增库,路径必须正确),根据不同的程序,需要不同的插件库例如:1、使用QMediaPlayer需要添加plugins目录下的mediaservice文件夹下的动态库2、使用除png外其他图片文件时,需要保护相应的图片插件动态库

以上是关于QWebView加载网页的主要内容,如果未能解决你的问题,请参考以下文章

QWebView 自动标签

QWebView 不加载外部资源

QWebView 获取内容类型

PyQt4中QWebView的多线程

QNetworkReply:在 QWebView 中禁用了网络访问

PyQt4.QtWebKit:加载停止时 QWebPage QWebView 设置超时