QT-QWebEngineView-createWindow彈出頁面解決
阿新 • • 發佈:2018-07-04
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彈出頁面解決