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

发布于 2024-10-07 03:39:42 字数 300 浏览 7 评论 0原文

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

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

请考虑第一张图像可能根本不存在。不管是否有像file://path/to/image/image_name.png这样的图像,都有可能被人为地设置到QTextEdit中的HTML代码。

Say there is a text and images in a QTextEdit. And say you extract HTML code of the QTextEdit. Now how it is posible to find the places in the HTML code where the images are instantiated () and replace with another images that I have as a QImage objects retaining the position and the size of the former image.

In other words it is necessary to exchange pictures while retaining the position and the size of the first picture, when the second picture is stored in the program as a QImage.

Please consider that the first image may not exist at all. The HTML code that hase may be set to the QTextEdit artificially regardless there if is an image like file://path/to/image/image_name.png or not.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过期情话 2024-10-14 03:39:42
//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);
//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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文