【QT进阶】Qt Web混合编程之QWebEngineView基本用法

07-14 1318阅读

往期回顾

【QT入门】Qt自定义控件与样式设计之自定义QTabWidget实现tab在左,文本水平的效果-CSDN博客
【QT进阶】Qt Web混合编程之CEF、QCefView简单介绍-CSDN博客

【QT进阶】Qt Web混合编程之VS2019 CEF的编译与使用-CSDN博客

 

 【QT进阶】Qt Web混合编程之QWebEngineView基本用法

一、最终效果

【QT进阶】Qt Web混合编程之QWebEngineView基本用法

二、具体用法

1、导入webenginewidgets模块

在pro文件的第一行补上就行

QT       += core gui  webenginewidgets

注意:当我们需要导入webenginewidgets模块时,必须是在MVCS编译器下,如果使用MinGW是会报错的

因为WebEngineWidgets模块依赖于Chromium内核,而Chromium内核是使用VisualStudio编译的。所以为了保持兼容性和稳定性,Qt在提供WebEngineWidgets模块时要求使用MSVC编译器。如果用MinGW编译器时,由于MinGW是一个基于GCC编译器的开源编译器集合,与VisualStudio编译器存在一些差异,可能会出现一些兼容性问题,导致WebEngineWidgets模块无法正常使用。

2、两种使用方法

不管哪种方法,都需要先导入webenginewidgets模块

2.1直接提升控件为QWebEngineView

【QT进阶】Qt Web混合编程之QWebEngineView基本用法

然后在widget.cpp文件里直接用提升的控件去调用load/setUrl方法

注意给widget控件改个名字,方便区分使用 

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->web_widget->load(QUrl("http://www.baidu.com"));
    ui->web_widget->show();
}
2.2、创建类继承QWebengineView

自己创建一个类,继承自QWebengineView,用这个类的对象去调用方法

(1)右键单击项目->添加新文件->选择c++ class->继承自QWebengineView

【QT进阶】Qt Web混合编程之QWebEngineView基本用法

(2)初始化一下新添加的类,然后在widget.cpp文件里创建类对象并展示即可

当然,如果我们还想展示在某个widget控件里,让控件提升为我们新建这个类就是 

注意一个问题:

    CWebEngineView * webEngine = new CWebEngineView();
    webEngine->load(QUrl("http://www.baidu.com"));

注意,此时这样写,是不会显示出来的,因为窗口控件webwidget跟这个类新建的对象没关系

正确的写法:

【QT进阶】Qt Web混合编程之QWebEngineView基本用法

ui->web_widget02->load(QUrl("http://www.baidu.com"));

3、setUrl和load方法具体介绍 

 3.1setUrl()方法

setUrl方法用于设置要显示的Web页面的URL。它接受一个QUrl对象作为参数,表示要加载的页面的URL。当调用setUrl方法时,QWebEngineView会立即开始加载指定的页面。

3.2load()方法

load方法也用于加载Web页面,它接受一个QUrl对象作为参数,表示要加载的页面的URL。与setUrl方法不同的是,load方法是一个重载方法,它还可以接受一个QWebEngineHttpRequest对象作为参数,用于指定加载页面时的请求头信息。调用load方法会开始加载指定的页面,并且可以通过QWebEnginePage的loadProgress信号来跟踪加载进度。

二者区别:

setUrl方法用于简单地设置要显示的页面的URL,而load方法则更加灵活,可以设置加载页面时的请求头信息。


以上就是QWebEngineView基本用法的简单介绍。

都看到这里了,点个赞再走呗朋友~

加油吧,预祝大家变得更强!

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]