在QTextEdit中将图像替换为另一个图像

时间:2010-12-11 15:13:42

标签: c++ image qt qtextedit qimage

假设QTextEdit中有文本和图像。并说你提取QTextEdit的HTML代码。现在,如何在HTML代码中找到实例化图像的位置(),并将其作为保留前一图像位置和大小的QImage对象替换为其他图像。

换句话说,当第二张图片作为QImage存储在程序中时,有必要在保留第一张图片的位置和大小的同时交换图片。

请注意第一张图片可能根本不存在。无论是否有像 file://path/to/image/image_name.png 这样的图像,都可以人为地将HTML代码设置为QTextEdit。

1 个答案:

答案 0 :(得分:1)

//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);