QT-QWebEngineView-createWindow弹出页面解决
Posted 我自横刀向天笑 去留肝胆两昆仑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT-QWebEngineView-createWindow弹出页面解决相关的知识,希望对你有一定的参考价值。
首先要写一个继承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弹出页面解决的主要内容,如果未能解决你的问题,请参考以下文章