QDeclarativeView で Web サイトを開き、JavaScript を使用して同じビューで次のページを読み込みます。
各 Web サイトが読み込まれた後、私のプログラムはさらに 20 MB のメモリを占有します。新しい Web サイトが読み込まれた後、キャッシュを消去するか、メモリを解放するにはどうすればよいですか?
私は試した:
decView->engine()->rootContext()->setContextProperty("myEngine", decView->engine());
そしてqmlで
myEngine.clearComponentCache()
しかし、私は得る
TypeError: 式 'myEngine.clearComponentCache' [未定義] の結果は関数ではありません。
どうすればいいですか?
編集:これが私がソファーを得たものです:
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();}
}