Domanda

dicono che c'è un testo e immagini in una QTextEdit. E dici di estrarre il codice HTML della QTextEdit. Ora, come è posible per trovare i posti nel codice HTML in cui sono istanziati le immagini () e sostituirlo con un altro le immagini che ho come oggetti di QImage mantenendo la posizione e la dimensione della prima immagine.

In altre parole è necessario scambiare foto mantenendo la posizione e la dimensione della prima immagine, quando la seconda immagine viene memorizzata nel programma come QImage.

Si prega di considerare che la prima immagine potrebbe non esistere affatto. Il codice HTML che Hase può essere impostato sulla QTextEdit artificialmente indipendentemente lì, se è l'immagine come file:. //Path/to/image/image_name.png o no

È stato utile?

Soluzione

//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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top