美文网首页
QWebEngineView使用

QWebEngineView使用

作者: BrokenRainK | 来源:发表于2020-04-18 10:08 被阅读0次

    \color{red}{注:QWebEngineView目前只支持MSVC编译器,MinGW无法使用}

    引用webenginemo模块

    在pro中添加QT += webenginewidgets

    使用QWebEngineView

    view = QWebEngineView(this);
    view.load(QUrl("http://qt-project.org/"));
    view.show();
    

    加载网页

    view.load(QUrl("http://qt-project.org/"));
    或
    view.setUrl(QUrl("http://qt-project.org/"));
    

    加载HTML内容

    view.setHtml("<html><body><p>hello world.</p></body></html>")
    

    弹出窗口支持

    如果允许用户打开新窗口的网站(如弹出窗口)提供支持,可以继承QWebEngineView并重新实现createWindow()函数。

    QWebEngineView *WebEngineView::createWindow(QWebEnginePage::WebWindowType type)
    {
        //do something
        return this;
    }
    

    信号处理

    void loadStarted();                     //页面加载时发出
    void loadProgress(int progress);        //页面加载进度
    void loadFinished(bool ok);             //页面加载结束,ok表示加载成功或失败
    void iconChanged(const QIcon &icon);    //网页图标改变时发出
    void iconUrlChanged(const QUrl &url);   //网页图标URL改变时发出
    void selectionChanged();                //网页中选择内容改变时发出
    void titleChanged(const QString &title);//网页标题改变时发出
    void urlChanged(const QUrl &url);       //加载的URL改变时发出
    void renderProcessTerminated(QWebEnginePage::RenderProcessTerminationStatus terminationStatus, int exitCode);//进程非正常退出时发出,terminationStatus表示退出状态,exitCode表示退出状态码
    

    主要方法说明

    QWebEnginePage *page() const //函数返回指向网页对象的指针。 QWebEngineView包含一个QWebEnginePage,它允许访问页面上下文中的QWebEngineHistory。
    QUrl iconUrl() const   //获取网页图标url
    QIcon icon() const     //获取网页图标
    QString title() const  //获取网页标题
    QUrl url() const       //获取网页url
    

    开启插件支持

    //开启插件支持(如Flash player、文件拖拽等)
    QWebEngineSettings::defaultSettings()->setAttribute(QWebEngineSettings::PluginsEnabled, true);
    

    开启文件下载支持

    QWebEngineView *web = new QWebEngineView(reinterpret_cast<QWebEngineView*>(this));
    connect(web->page()->profile(), &QWebEngineProfile::downloadRequested, [this](QWebEngineDownloadItem *download) {
        if (download->savePageFormat() != QWebEngineDownloadItem::UnknownSaveFormat)
        {
    
        }
    
        QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), download->path());//选择下载路径
        if (fileName.isEmpty())
            return;
    
        download->setPath(fileName);//设置文件下载路径
        qDebug() << download->path() << download->savePageFormat();
        download->accept();//接收当前下载请求,只有接收后才会开始下载
    });
    

    相关文章

      网友评论

          本文标题:QWebEngineView使用

          本文链接:https://www.haomeiwen.com/subject/vmvmvhtx.html