私のプログラムは、いくつかQTextBrowser
の異なる を使用してコンテンツをユーザーに表示しています。これらのコンテンツには画像が含まれているものがあります。ファイルからQPixmap
s にロードし、表示するテキスト ドキュメントに追加します。
次のようなコードがあるとします。
QTextBrowser* browser = new QTextBrowser(this);
//Codes to add the browser to GUI
QPixmap pix;
pix.load(file_address);
browser->document()->addResource(QTextDocument::ImageResource, QUrl("url://Test1"), pix);
browser->setHtml( "<img src='url://Test1' width=120 height=90 />" );
後で、ブラウザーは不要になったので、削除します。
browser->deleteLater();
今私の問題は、この削除されたブラウザに追加されたリソースをキャッシュから削除するにはどうすればよいですか?
QTextDocument
のドキュメントには、次のように記載されています。
void QTextDocument::addResource(int type, const QUrl & name, const QVariant & resource)タイプと名前を識別子として使用して、リソースリソースをリソース キャッシュに追加します。
そのため、アプリケーションを閉じるまで、リソースはキャッシュに残ります。ただし、キャッシュには多くのリソースが追加されており、アプリが数日間連続して実行される可能性があるため、事前にクリアする必要があります。