0

QTextEdit にテキストと画像があるとします。QTextEdit の HTML コードを抽出するとします。画像がインスタンス化されている HTML コード内の場所を見つけて ()、元の画像の位置とサイズを保持する QImage オブジェクトとして持っている別の画像に置き換える方法を説明します。

つまり、2番目の画像がQImageとしてプログラムに格納されている場合、最初の画像の位置とサイズを保持したまま画像を交換する必要があります。

一枚目の画像は全く無い場合もございますのでご了承ください。file://path/to/image/image_name.pngのような画像があるかどうかに関係なく、持っている HTML コードが人為的に QTextEdit に設定される場合があります。

4

1 に答える 1

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);
于 2010-12-14T11:49:52.513 に答える