Qt,QTextEdit,如何将QTextEdit中的所有内容转换为图像。

时间:2013-05-04 08:41:01

标签: qt qtextedit

我想创建一个包含QTextEdit的图像。 我编写以下代码来创建图像。

QSize s = textEdit->frameSize();
QPixmap p(s);
textEdit->render(&p);
p.save("textContent.png", "PNG");

但它不能包含不可见的内容。(虽然QTextEdit中的内容太长)

如果有办法创建包含QTextEidt中所有内容的图像,我就会徘徊。如何。

感谢。

1 个答案:

答案 0 :(得分:1)

我认为,您可以通过QTextDocument * QTextEdit::document ()来接收QTextEdit的QTextDocument *,然后通过void QTextDocument::drawContents ( QPainter * p, const QRectF & rect = QRectF() )

将其绘制到QImage

它用画家p绘制文档的内容,剪切到rect。如果rect是一个空矩形(默认),那么文档将被绘制为未剪切。

在这里检查一下 - http://harmattan-dev.nokia.com/docs/library/html/qt4/qtextdocument.html#drawContents

或者 - 另一种方式 - 通过toPlainHtml() or toPlainText()获取TextEdit中的所有文本 - 更适合您的需求,并通过QPainter的方法将其绘制到QImage QPainter::DrawText()