QWebEngineView渲染缓慢原因

当QWebEngineView的父对象设置了阴影效果,QWebEngineView也会被设置阴影效果,

但QWebEngineView被设置阴影效果之后,网页的渲染和交互会变得非常卡顿。

如下图官方介绍:

QWebEngineView渲染缓慢原因

 

下面给出了既要保留父对象的阴影效果,又要解决QWebEngineView渲染慢的问题的解决方案:

1、对QWebEngineView对象也设置一次阴影效果,这样就可以移除父对象的阴影效果了(如下图所示:),同时QWebEngineView对象有了自己的阴影效果,就可以单独设置QWebEngineView对象的阴影效果不生效。

QWebEngineView渲染缓慢原因

2、将QWebEngineView的阴影效果设置成不生效。

源码如下:
#include "shadowwidget.h"
#include "ui_shadowwidget.h"
#include <QGraphicsDropShadowEffect>
#include <QVBoxLayout>
#include <QDebug>

ShadowWidget::ShadowWidget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::ShadowWidget)
{
    ui->setupUi(this);
    //setWindowFlag(Qt::FramelessWindowHint);
    QGraphicsDropShadowEffect * graphicsDropShadowEffect = new QGraphicsDropShadowEffect(this);
    setGraphicsEffect(graphicsDropShadowEffect);
    QVBoxLayout * vBoxLayout = new QVBoxLayout(this);
    webEngineView_ = new QWebEngineView(this);
    vBoxLayout->addWidget(webEngineView_);
    webEngineView_->setGraphicsEffect(graphicsDropShadowEffect);
    webEngineView_->graphicsEffect()->setEnabled(false);
    webEngineView_->load(QUrl("https://www.baidu.com"));
    webEngineView_->show();
}
ShadowWidget::~ShadowWidget()
{
    delete ui;
}
上一篇:c-Qt 5.8和Pdf.js错误


下一篇:zabbix的搭建