博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QT QWebView/QWebEngineView使用
阅读量:4041 次
发布时间:2019-05-24

本文共 2496 字,大约阅读时间需要 8 分钟。

一、 简介

       使用QT程序可以访问web页面,但在不同QT版本中使用的类和方法不同:

               1. Qt4中使用webkit模块;

               2. Qt5 ~Qt5.5使用webkitwidgets模块;

               3. Qt5.6以上版本使用webenginewidgets模块。

       所以在不同版本中添加的模块,使用的类都不相同;

二、 Qt4版本

       Qt4使用webkit模块。

       1. 创建一个Widget类的QT工程,在pro工程文件中添加 webkit network :

QT       += core gui webkit networkgreaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = webTEMPLATE = app  SOURCES += main.cpp\           widget.cpp HEADERS  += widget.h FORMS    += widget.ui

        2. 编辑widget.h文件,在Widget类中添加一个指针成员,该指针指向一个QWebView类:

#ifndef WIDGET_H#define WIDGET_H #include 
#include
namespace Ui {class Widget;} class Widget : public QWidget{ Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); QWebView *view; private: Ui::Widget *ui;}; #endif // WIDGET_H

     3. 修改widget.cpp,实现下面两个成员函数

#include "widget.h"#include "ui_widget.h" Widget::Widget(QWidget *parent) :    Widget(parent),    ui(new Ui::Widget){    ui->setupUi(this);     view = new QWebView(this);    view->load(QUrl("http://www.baidu.com"));    view.showMaximized();} Widget::~Widget(){    delete view;    delete ui;}

三、 Qt5 ~ Qt5.5版本

     Qt5版本之后,将QWebView、QWebFrame、QWebPage、QWebInspector等类被单独移到了webkitwidgets模块,不再在QtWebKit模块中,因此需使用webkitwidgets模块。

     和Qt4的区别仅在于pro文件中添加的模块不同和widget.h文件中包含的头文件不同。

QT       += core gui webkitwidgets networkgreaterThan(QT_MAJOR_VERSION, 4): QT += widgets
#ifndef WIDGET_H#define WIDGET_H #include 
#include

四、 Qt5.6及以上版本

     Qt5.5.1是最后一个支持webkitwidgets的版本,在5.6版本以及之后的版本,Qt将webkitwidgets模块移除,并用一个新的模块webenginewidgets代替。

     1. 创建一个Widget类的QT工程,在pro工程文件中添加 webenginewidgets:

QT       += core gui webenginewidgetsgreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsTARGET = webTEMPLATE = appSOURCES += \        main.cpp \        widget.cppHEADERS += \        widget.hFORMS += \        widget.uiRESOURCES +=

     2. 编辑widget.h文件,包含QWebEngineView头文件,并在Widget类中添加一个指针成员,该指针指向一个QWebEngineView类:

#ifndef WIDGET_H#define WIDGET_H #include 
#include
namespace Ui {class Widget;} class Widget : public QWidget{ Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); QWebEngineView *view; private: Ui::Widget *ui;}; #endif // WIDGET_H

    3. 修改widget.cpp,实现下面两个成员函数

#include "widget.h"#include "ui_widget.h" Widget::Widget(QWidget *parent) :    Widget(parent),    ui(new Ui::Widget){    ui->setupUi(this);     view = new QWebEngineView(this);    view->load(QUrl(QStringLiteral("http://www.baidu.com")));    view.showMaximized();} Widget::~Widget(){    delete view;    delete ui;}

 

转载地址:http://ezadi.baihongyu.com/

你可能感兴趣的文章
Visual Studio 2010:C++0x新特性
查看>>
drwtsn32.exe和adplus.vbs进行dump文件抓取
查看>>
cppcheck c++静态代码检查
查看>>
在C++中使用Lua
查看>>
一些socket的编程经验
查看>>
socket编程中select的使用
查看>>
关于AIS编码解码的两个小问题
查看>>
GitHub 万星推荐:黑客成长技术清单
查看>>
可以在线C++编译的工具站点
查看>>
关于无人驾驶的过去、现在以及未来,看这篇文章就够了!
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
昨夜今晨最大八卦终于坐实——人类首次直接探测到了引力波
查看>>
为什么读了很多书,却学不到什么东西?
查看>>
长文干货:如何轻松应对工作中最棘手的13种场景?
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
No.147 - LeetCode1108
查看>>
No.174 - LeetCode1305 - 合并两个搜索树
查看>>
No.175 - LeetCode1306
查看>>
No.176 - LeetCode1309
查看>>
No.182 - LeetCode1325 - C指针的魅力
查看>>