写点什么

Qt | 实现基于 Qt WebEngine Widgets 的网页浏览器

作者:YOLO.
  • 2022 年 9 月 07 日
    河北
  • 本文字数:1142 字

    阅读完需:约 4 分钟

Qt | 实现基于Qt WebEngine Widgets的网页浏览器

前言:

Qt WebEngine 模块提供了一个 Web 浏览器引擎,可以很容易地将万维网中的内容嵌入到 Qt 应用程序中。因为 Qt WebEngine 模块是基于 Google Chromium 项目的,Chromium 现在并不支持 MinGW 进行构建,在 Windows 平台上需要使用 MSVC 2013 以上版本进行构建。

Qt WebEngine 基于 Chromium,但是其中并没有包含或使用 Google Chrome 浏览器提供的服务或者加载项。

Qt WebEngine 架构:

Qt WebEngine 中的功能被划分到 3 个不同的模块:

  • Qt WebEngine Widgets 模块,用来创建基于 C++ Widgets 部件的 Web 程序;

  • Qt WebEngine 模块,用来创建基于 Qt Quick 的 Web 程序;

  • Qt WebEngine Core 模块,用来与 Chromium 交互。

基于 Qt WebEngine Widgets 的网页浏览器:

使用 Qt WebEngine Widgets 模块,需要在.pro 文件中添加“QT += webenginewidgets”。

显示一个网页:

//在.h中添加类的前置声明class QWebEngineView;//在.h中添加私有成员对象QWebEngineView *view;//在.cpp中添加头文件#include <QWebEngineView>//构造函数中创建网页view = new QWebEngineView(this);view->load(QUrl("http://www.qter.org/"));setCentralWidget(view);resize(1024, 680);
复制代码
  • 创建了一个 QWebEngineView 视图部件,用于显示网页内容;

  • 调用 load() 函数加载要显示的网站地址;setUrl() 也可以用于加载网站,如果是现成的 HTML 文档,则可以使用 setHtml() 函数来加载。

  • setCentralWidget() 将视图部件设置为主窗口的中心部件;

添加导航动作图标和地址栏:

//连接QWebEngineView发射的信号和自定义的槽函数connect(view, &QWebEngineView::loadProgress, this, &MainWindow::setProgress);connect(view, &QWebEngineView::titleChanged, this, &MainWindow::adjustTitle);connect(view, &QWebEngineView::loadFinished, this, &MainWindow::finishLoading);//向工具栏中添加动作和部件ui->mainToolBar->addAction(view->pageAction(QWebEnginePage::Back));ui->mainToolBar->addAction(view->pageAction(QWebEnginePage::Forward));ui->mainToolBar->addAction(view->pageAction(QWebEnginePage::Reload));ui->mainToolBar->addAction(view->pageAction(QWebEnginePage::Stop));//添加导航栏QLineEdit *locationEdit = new QLineEdit(this);ui->mainToolBar->addWidget(locationEdit);
复制代码
  • 当 QWebEngineView 开始加载时,会发射 loadStarted() 信号;

  • 每当一个网页元素(例如一张图片或一个脚本等)加载完成时,都会发射 loadProgress() 信号,如果加载成功,该信号参数为 true,否则为 false;

  • 可以使用 title()函数来获取 HTML 文档的标题,如果标题发生了改变,则会发射 titleChanged() 信号;

  • QWebEnginePage 中通过枚举类型 QWebEnginePage::WebAction 定义了几十个常用的功能动作,比如前进后退等,可以在帮助文档中进行查看。

发布于: 刚刚阅读数: 4
用户头像

YOLO.

关注

还未添加个人签名 2022.05.06 加入

还未添加个人简介

评论

发布
暂无评论
Qt | 实现基于Qt WebEngine Widgets的网页浏览器_qt_YOLO._InfoQ写作社区