1

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

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

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

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

谢谢。

4

1 回答 1

1

我认为,您可以像通过QTextDocument * QTextEdit::document ()接收QTextDocument *您的 QTextEdit 一样进行操作,然后通过将其绘制到 QImagevoid QTextDocument::drawContents ( QPainter * p, const QRectF & rect = QRectF() )

它用painter p绘制文档的内容,剪裁为rect。如果 rect 是一个空矩形(默认),则文档被绘制为未剪裁。

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

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

于 2013-05-04T10:27:25.747 回答