我使用 QDeclarativeView 打开网站并使用 JavaScript 在同一视图中加载下一页。
每个网站加载后,我的程序占用 20mb 以上的内存。加载新网站后如何清理缓存或以其他方式释放内存?
我试过:
decView->engine()->rootContext()->setContextProperty("myEngine", decView->engine());
然后在 qml
myEngine.clearComponentCache()
但我明白了
TypeError:表达式“myEngine.clearComponentCache”[undefined] 的结果不是函数。
我该做什么?
编辑:这是我到目前为止得到的:
aws.cpp
void Aws::openQMLWindowSlot(){
QDeclarativeView *decView= new QDeclarativeView();
decView->engine()->rootContext()->setContextProperty("myAws",this);
decView->setSource(QUrl("qrc:/inc/firstqml.qml"));
decView->show();
}
void Aws::clearCacheQMLSlot(){
//HERE I GOT PROBLEM
}
第一个qml.qml
import QtQuick 1.1
import QtWebKit 1.0
WebView {
id: webView
objectName: "myWebView"
url:"http://example.com"
onLoadFinished: {myAws.clearCacheQMLSlot();}
}