本文共 2496 字,大约阅读时间需要 8 分钟。
使用QT程序可以访问web页面,但在不同QT版本中使用的类和方法不同:
1. Qt4中使用webkit模块;
2. Qt5 ~Qt5.5使用webkitwidgets模块;
3. Qt5.6以上版本使用webenginewidgets模块。
所以在不同版本中添加的模块,使用的类都不相同;
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版本之后,将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.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/