1. 程式人生 > >QT-QWebEngineView-createWindow彈出頁面解決

QT-QWebEngineView-createWindow彈出頁面解決

con new prot pan browser vat sage 方法 窗口

首先要寫一個繼承QWebEngineView的類

頭文件:

#ifndef WEBBROWSER_H
#define WEBBROWSER_H

#include <QWebEngineView>
#include <QWidget>

namespace netsharp {

class WebBrowser : public QWebEngineView
{
     Q_OBJECT

public:
    explicit WebBrowser(QWidget* parent = Q_NULLPTR);

protected:
    /**
     * @brief createWindow 在鼠標左鍵點擊的時候會觸發這個方法
     * @param type
     * @return
     
*/ QWebEngineView *createWindow(QWebEnginePage::WebWindowType type); private : }; } #endif // WEBBROWSER_H

實現文件:

#include "webbrowser.h"
#include "MainWindow.h"
#include <QWidget>
#include<QMessageBox>
#include<QMainWindow>

namespace netsharp {

WebBrowser::WebBrowser(QWidget 
*parent) : QWebEngineView(parent) { } QWebEngineView *WebBrowser::createWindow(QWebEnginePage::WebWindowType type) { WebBrowser *webbrowser = new WebBrowser(this); QMainWindow *dialog = new QMainWindow() ; dialog->setCentralWidget(webbrowser); dialog->show(); return webbrowser; } }

主窗口調用文件代碼(mainwindow.cpp)

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "WebBrowser.h"
#include "QSystemTrayIcon"
#include "QMessageBox"
#include <QTimer>
#include <QUrl>

using namespace netsharp;

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{

    ui->setupUi(this);


   this->webbrowser = new WebBrowser(this);
    this->webbrowser->load(QUrl("http://beehive.gongsibao.com"));
    this->setCentralWidget(this->webbrowser);

}

QT-QWebEngineView-createWindow彈出頁面解決