用qtextedit中的另一个替换图像
题
说qtextedit中有一个文本和图像。并说您提取QTEXTEDIT的HTML代码。现在,如何在HTML代码中找到图像的实例化()中的位置,并用我作为Qimage对象保留了前一个图像的位置和大小的另一个图像。
换句话说,当将第二张图片存储在程序中时,必须在保留第一张图片的位置和大小的同时交换图片。
请考虑到第一个图像可能根本不存在。 html代码可以将html代码设置为qtextedit,无论是否有类似的图像 file://path/to/image/image_name.png 或不。
解决方案
//Add images as resources
for(int i = 0; i < vectorOfImages.size(); i++ )
{
QUrl url(QString("image_%1").arg(i));
textEdit->document()->addResource(QTextDocument::ImageResource, url, vectorOfImages.at(i));
}
//Process the htmlCode that is in QTextEdit.
int count = 0;
int pos = 0;
QRegExp rx("<img src=\".+/>");
while ((pos = rx.indexIn(htmlCode, pos)) != -1)
{
QString strToReplace(QString("<img src=\"image_%1\" />").arg(count));
htmlCode.replace(pos, rx.matchedLength(), strToReplace);
pos += rx.matchedLength();
count++;
}
textEdit->setText(htmlCode);
不隶属于 StackOverflow