Frage

sagen, es ist ein Text und Bilder in einem QTextEdit. Und sagen Sie HTML-Code des QTextEdit extrahieren. Nun, wie es ist posible die Orte in dem HTML-Code zu finden, wo die Bilder instanziiert () und ersetzt mit anderen Bildern, dass ich als QImage die Position Objekte beibehalten und die Größe des früheren Bildes.

Mit anderen Worten ist es notwendig, den Austausch von Bildern, während die Position zu halten und die Größe des ersten Bildes, wenn das zweite Bild in dem Programm als QImage gespeichert wird.

Bitte beachten Sie, dass das erste Bild nicht existieren kann. Der HTML-Code, dass hase künstlich in den QTextEdit eingestellt werden kann, unabhängig da, wenn ein Bild wie Datei:. //Path/to/image/image_name.png oder nicht

War es hilfreich?

Lösung

//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);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top