我的程序正在使用几个不同QTextBrowser
的 s 向用户显示内容。其中一些内容有图像。我从文件加载到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) 将资源资源添加到资源缓存中,使用类型和名称作为标识符。
因此,资源一直保留在缓存中,直到我关闭应用程序。但是我需要事先清除它,因为缓存中添加了很多资源,并且应用程序可能会连续运行几天。