mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QWidget>
#include <QWebEngineHistory>
#include "mywebview.h"
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
void loadWeb(QString url);
protected:
void resizeEvent(QResizeEvent *);
private:
MyWebView *new_view ;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include <QApplication>
#include <QDebug>
#include <QWidget>
void MainWindow::loadWeb(QString url){
new_view->setUrl(QUrl(url)) ;
}
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
new_view = new MyWebView(this);
new_view->showFullScreen();
this->showFullScreen();
loadWeb("http://www.baidu.com");
}
MainWindow::~MainWindow()
{
}
void MainWindow::resizeEvent(QResizeEvent *event){
new_view->resize(this->width(),this->height() );
}
mywebview.h
#ifndef MYWEBVIEW_H
#define MYWEBVIEW_H
//#include "mytabwidget.h"
#include <QWebEngineView>
#include <QWebEnginePage>
class MyWebView : public QWebEngineView
{
Q_OBJECT
public:
MyWebView(QWidget *parent = nullptr) : QWebEngineView(parent){
connect(this->page(),&QWebEnginePage::linkHovered,this,&MyWebView::linkHovered);
}
protected:
QWebEngineView *createWindow(QWebEnginePage::WebWindowType type);
QUrl now_url;
public slots:
void linkHovered(const QString &url);
};
#endif // MYWEBVIEW_H
mywebview.cpp
#include "mywebview.h"
QWebEngineView *MyWebView::createWindow(QWebEnginePage::WebWindowType type)
{
qDebug()<<"type:"<<type<<endl;
this->load(now_url);
return 0;
}
void MyWebView::linkHovered(const QString &url)
{
now_url=url;
}
QWebEngineView *MyWebView::createWindow(QWebEnginePage::WebWindowType type)
{
qDebug()<<"type:"<<type<<endl;
this->load(now_url);
return 0;
}
这里主要实现的就是页面内的跳转
如果是标签打开的这里可以直接使用 return this