首页 > 技术文章 > Qt 显示网页的控件

liuruoqian 2017-06-12 20:36 原文

Qt5.6以下的版本,基于QtWebkit控件
Qt5.6以上的MSVC版本,基于 Chromium 的浏览器引擎 Qt WebEngine
Qt5.6以上的mingw 版本,只能采用QAxWidget 控件 

 

 如果没有这个控件请安装Qt对应的版本选定webengineviw或者对应的模块

 

Qt5.7msvc  下使用  webengine

工程文件里面包含: QT += webenginewidgets 

#include <QWebEngineView>

通过QWebEngineView这个控件去显示url、
QWebEngineView *myWeb = new QWebEngineView(this);
myweb->setUrl(QUrl("https://www.baidu.com/"));
这样可以直接使用了,但是没有研究添加控件,比如前进,后退,刷新之类的。
效果图如下,(可能是由于太多个webView的原因,导致卡顿7个)


Qt 5.7MingW 下使用QAxwigdet
工程文件里添加 QT += axcontainer
#include <QAxWidget>
  mainLayout = new QVBoxLayout(this);
  myWidget = new QAxWidget(this);
  mainLayout->addWidget(myWidget);

  myWidget->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}"));//注册组件UUID
  myWidget->setObjectName(QString::fromUtf8("my_musicLibraryWebWid"));//设置控件的名称
  myWidget->setFocusPolicy(Qt::StrongFocus);       //设置控件接收键盘焦点的方式:鼠标单击、Tab键
  myWidget->setProperty("DisplayAlerts",false);    //不显示任何警告信息。
  myWidget->setProperty("DisplayScrollBars",true); // 显示滚动条
  QString webStr = QString("http://www2.kugou.kugou.com/yueku/v9/html/home.html");//设置要显示的Url  kugou的。
  myWidget->dynamicCall("Navigate(const QString&)",webStr);

效果图如下,非常流畅,毫无卡顿。

 

至于4.8的webkit就不测试了,很少用到,基本应用都是以上两种,4.x都是linux这边比较多,目前不涉及暂不研究,有需要可以私信。


推荐阅读