加载新的QWebview Cpp Html后,Qt内存泄漏

时间:2015-12-08 13:25:08

标签: html c++ qt qwebview

我正在使用html中的前端在Cpp中进行Qt应用。

我的问题是:每当我加载一个新的html页面时,我的应用程序得+ = 5Mo。

我试图删除旧页面,似乎工作但我仍然每个新页面都有+ 5米。

这是我的代码:

Q_INVOKABLE bool myBridge::newView(QString page)
{
    QString path = "file:///C:/Users/ITIZ32/Desktop/WLC/Borne/";
    //QString path = ("file:///" + QDir::currentPath() + "/");

    if (!(page.compare("page3.html")))
        _mediaPlayer->setTimer(10000);
    else
        _mediaPlayer->setTimer(60000);

    _view->close();
    _view = nullptr;
    delete _view;
    _view = new WebView;
    _view->load(QUrl(path + page));
    _view->page()->mainFrame()->addToJavaScriptWindowObject("bridge", this);
    _view->showFullScreen();
    _mediaPlayer->_srnsaver->timerRestart();
    return (true);
}

我尝试了很多东西(比如预加载向量中的所有页面)但我仍然不明白如何在我的html页面之间正确切换,负载总是给我泄漏。 你有什么提示可以帮助我吗?我开始无望了。

你们中的一些人可能会看到我的老帖子,我很抱歉再发一个但是最后一个没有帮助我:/

1 个答案:

答案 0 :(得分:0)

检查您的代码

_view->close();
_view = nullptr;
delete _view;

删除空指针无效。

首先删除_view,然后将其设置为null。

在您的情况下,无需删除旧视图,只需调用load(newurl)即可加载网页。