我想创建一个包含 QTextEdit 的图像。我编写了以下代码来创建图像。
QSize s = textEdit->frameSize();
QPixmap p(s);
textEdit->render(&p);
p.save("textContent.png", "PNG");
但它不能包含不可见的内容。(在QTextEdit中内容太长)
如果有办法创建包含 QTextEidt 中所有内容的图像,我会徘徊。如何。
谢谢。
我认为,您可以像通过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()