1WebPage.pro文件
QT += core gui webenginewidgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11 # The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of Qt. #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += main.cpp webpage.cpp HEADERS += webpage.h FORMS += webpage.ui # Default rules for deployment. qnx: target.path = /tmp/$${TARGET}/bin else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target
2.webpage.h文件
#ifndef WEBPAGE_H
#define WEBPAGE_H
#include <QWidget>
#include<QWebEngineView>
#include<QDebug>
QT_BEGIN_NAMESPACE
namespace Ui { class WebPage; }
QT_END_NAMESPACE
class WebPage : public QWidget
{
Q_OBJECT
public:
WebPage(QWidget *parent = nullptr);
~WebPage();
private slots:
void getPage(bool);
void getHtml(const QString&);
protected:
void resizeEvent(QResizeEvent *);
signals:
void html(const QString& result);
private:
Ui::WebPage *ui;
QWebEngineView* view;
QWebEnginePage *page;
};
#endif // WEBPAGE_H
3.webpage.cpp文件
#include "webpage.h"
#include "ui_webpage.h"
WebPage::WebPage(QWidget *parent)
: QWidget(parent)
, ui(new Ui::WebPage)
{
ui->setupUi(this);
connect(this,SIGNAL(html(const QString&)),this,SLOT(getHtml(const QString&)));
view = new QWebEngineView(this);
view->load(QUrl("https://so.iqiyi.com/so/q_你好"));
page = view->page();
connect(page,SIGNAL(loadFinished(bool)),this,SLOT(getPage(bool)));
// view->show();
}
WebPage::~WebPage()
{
delete ui;
}
void WebPage::resizeEvent(QResizeEvent *)
{
view->resize(this->size());
}
void WebPage::getPage(bool status){
qWarning()<<status<<endl;
page->toHtml([this](const QString& result) mutable {emit html(result);});
}
void WebPage::getHtml(const QString& reshtml){
qWarning()<<reshtml<<endl;
}
4.main.cpp
#include "webpage.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
WebPage w;
w.show();
return a.exec();
}