2016-04-10 3 views
0

Я использую Qt5.4.3 и в какой-то момент, Qt выводит сообщение как этотQWebView

LEAK: 145 CachedResource 
LEAK: 4432 WebCoreNode 

Я стараюсь, чтобы отобразить веб-страницу на приложение Qt, но все веб-страница, память всегда утечки.

Вот весь код проекта под названием «Тест» (я добавить элемент управления WebView в mainwindow.ui)

#test.pro 
QT  += core gui webkit 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets webkitwidgets multimedia multimediawidgets 

TARGET = EchartDemo 
TEMPLATE = app 


SOURCES += main.cpp\ 
     widget.cpp 

HEADERS += widget.h 

FORMS += widget.ui 

INCLUDEPATH += $$PWD 
MOC_DIR  = temp/moc 
RCC_DIR  = temp/rcc 
UI_DIR  = temp/ui 
OBJECTS_DIR = temp/obj 
DESTDIR  = bin 

//main.cpp 
#include "widget.h" 
#include <QApplication> 
#include <QTextCodec> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 

    Widget w; 
    w.showMaximized(); 
    return a.exec(); 
} 

//widget.h 
#ifndef WIDGET_H 
#define WIDGET_H 

#include <QWidget> 

namespace Ui { 
class Widget; 
} 

class Widget : public QWidget 
{ 
    Q_OBJECT 

public: 
    explicit Widget(QWidget *parent = 0); 
    ~Widget(); 



private: 
    Ui::Widget *ui; 
}; 

#endif // WIDGET_H 




//`widget.cpp` 
#include "widget.h" 
#include "ui_widget.h" 

Widget::Widget(QWidget *parent) : 
    QWidget(parent), 
    ui(new Ui::Widget) 
{ 
    ui->setupUi(this); 
     ui->webView->load(QUrl("file:///"+qApp->applicationDirPath()+"/html/hao.html")); 
} 

Widget::~Widget() 
{ 
    delete ui; 
} 

//hao.html 
<meta http-equiv="Refresh" content="0; url=http://www.hao123.com/?1460255739"/><meta property="shurufa:url-navigate" content="985" /> 

Для того, чтобы показать веб-страницы, как правило, следует поместить файл HTML в папку \build-EchartDemo-Desktop_Qt_5_4_2_MinGW_32bit-Debug\bin\html.

Конечно, вы можете изменить содержимое файла на все, что захотите.

Почему у меня эти утечки памяти?

+0

Вы используете QWebView :: setUrl() или HelpWidget :: goToHomePage() в любой ситуации? – Auriga

ответ

0

Это известная ошибка в Qt, и эти «утечки памяти» являются лишь предупреждениями в некоторых случаях. Вы можете прочитать об этом здесь: Qt Bug 40373, а также просмотреть другие сообщения об ошибках, в которых упоминаются те утечки.

Кроме того, вы должны рассмотреть возможность использования QWebEngineView, что намного лучше;) (и обновление до Qt5.6, но это уже другая история!).