Qt实现简单的显示网页(QtWebkit、QtWebEngine、QAxWidget)

首先先说说QtWebkit、QtWebEngine、QAxWidget三种方式显示网页的应用场景
QtWebkit:在Qt5.6以前,都是使用QtWebkit组件,但Qt5.6以后,移除了QtWebkit这个组件
QtWebEngine:Qt5.6以后的MSVC版本,引进了基于Chromium的浏览器引擎 QtWebEngine
QAxWidget:Qt5.6以后的mingw版本,由于移除了QtWebkit,mingw版本不能使用QtWebEngine,因此只能使用QAxWidget控件

QtWebkit

QtWebKit提供一个Web浏览器引擎,可以轻松地将来自万维网的内容嵌入到Qt应用程序中。同时,可以使用本机控件增强Web内容。
QtWebKit提供用于呈现超文本标记语言(HTML)、可扩展超文本标记语言(XHTML)和可伸缩矢量图形(SVG)文档的工具,这些文档使用级联样式表(CSS)样式,并使用JavaScript编写脚本。
JavaScript执行环境与Qt对象模型之间的桥梁使定制成为可能QObjects写剧本。有关详细文档,请参阅QtWebkit桥,通过与Qt网络模块的集成,可以透明地从Web服务器、本地文件系统甚至Qt资源系统加载Web页面。
除了提供纯呈现功能之外,还可以通过使用contenteditable属性设置在HTML元素上。
QtWebKit已经得到了增强,在移动领域也变得更有吸引力。有关更多信息,请参见QtWebKit Go Mobile.
QtWebKit是基于开放源码WebKit引擎。更多关于WebKit本身可以在WebKit开源项目网站。
关于交互部分需要与JavaScript联合使用,下面只简单的介绍如何显示网页。

QWebView view;
view.load(QUrl(https://blog.csdn.net/qq_36651243));
view.show();

更多QtWebkit资料

QtWebEngine

QtWebEngine模块提供了一个Web浏览器引擎,可以方便地在没有本地Web引擎的平台上将来自万维网的内容嵌入到Qt应用程序中。
QtWebEngine提供C+类和QML类型,用于呈现HTML、XHTML和SVG文档,样式为级联样式表(CSS),并使用JavaScript编写脚本。用户可以通过使用contenteditable属性设置在HTML元素上。

小编开发环境:Qt5.9.6+VS2015

QWebEngineView *LiveView = new QWebEngineView;
LiveView->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true);
LiveView->setAttribute(Qt::WA_DeleteOnClose);
LiveView->load(QUrl("https://blog.csdn.net/qq_36651243"));
//LiveView->setWindowFlags(Qt::FramelessWindowHint);   //去除边框
//LiveView->setAttribute(Qt::WA_TranslucentBackground, true); //透明
LiveView->resize(1024, 768);
LiveView->show();

更多QtWebEngine资料

QAxWidget

A QAxWidget可以使用它应该包装的ActiveX控件的名称,或者使用指向ActiveX控件的现有接口指针,将其实例化为空对象。ActiveX控件的属性、方法和事件,这些属性、方法和事件仅使用QAxBase受支持的数据类型,可作为Qt属性、槽和信号使用。基类QAxBase控件直接访问ActiveX的API。IUnknown指针。

小编开发环境:Qt5.9.6+VS2015
使用QAxWidget前需要注意两点:
1.QAxContainer.lib,QAxServer.lib库不可缺。
2.开发机本身具有相应的IE游览器(注册表文件一致)

QAxContainer.lib,QAxServer.lib引用方式:
在这里插入图片描述
关于注册表文件:
在这里插入图片描述

QAxWidget *flash = new QAxWidget(0, 0);      //QAxWidget使用的是ActiveX插件
flash->resize(600, 400);                    //设置该控件的初始大小
flash->setControl(QString::fromUtf8("{8856F961-340A-11D0-A96B-00C04FD705A2}"));//注册组件ID
flash->setProperty("DisplayAlerts", false);//不显示警告信息
flash->setProperty("DisplayScrollBars", true);//不显示滚动条
QString webstr = QString("www.baidu.com");//设置要打开的网页
flash->dynamicCall("Navigate(const QString&)", webstr);//显示网页
flash->show();

更多QAxWidget 资料

关于根据CEF封装QCef学习
QCef及CEF学习

  • 8
    点赞
  • 117
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

离歌漠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值