参考博客:https://www.jianshu.com/p/352da0c95f3c
一、界面设计如图所示:控件类型分别是QLineEdit、Qpushbutton、QFrame
二、在pro配置中加上模块如下:
QT += webenginewidgets
三、在.h文件中:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QWebEngineView>
#include <QStackedLayout>
#include <QCloseEvent>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QWebEngineView *m_webView;
};
#endif // MAINWINDOW_H
四、在.cpp文件中:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_webView = new QWebEngineView(this);
QStackedLayout* layout = new QStackedLayout(ui->frame);
ui->frame->setLayout(layout);
layout->addWidget(m_webView);
connect(ui->btnGo, &QPushButton::clicked, this, [this]()
{
QString url = ui->addressEdit->text();
if (!url.isEmpty())
{
m_webView->load(url);
}
});
connect(ui->btnRefresh, &QPushButton::clicked, this, [this]()
{
m_webView->reload();
});
}
MainWindow::~MainWindow()
{
delete ui;
}
五、最后完成,实现结果如图所示: