2013-05-04 5 views
1

Я хочу создать образ, содержащий QTextEdit. И я пишу следующий код для создания изображения.Qt, QTextEdit, как превратить весь контент в QTextEdit в изображение.

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

Но он не может содержать невидимое содержимое. (В то время как содержание слишком долго в QTextEdit)

я побродить, если есть способ, чтобы создать образ, который содержит все содержимое в QTextEidt. И как.

Спасибо.

ответ

1

я думаю, вы можете сделать это с помощью QTextDocument * QTextEdit::document() получить QTextDocument * вашего QTextEdit, а затем сделать его QImage с помощью void QTextDocument::drawContents (QPainter * p, const QRectF & rect = QRectF())

Рисует содержание документа с художником р обрезается Rect. Если rect является нулевым прямоугольником (по умолчанию), тогда документ окрашивается незанятым.

чек здесь человек - http://harmattan-dev.nokia.com/docs/library/html/qt4/qtextdocument.html#drawContents

Или - другой способ - взять весь текст из TextEdit через toPlainHtml() or toPlainText() - то, что больше подходит для ваших нужд и привлечь его к QImage с помощью метода в QPainter QPainter::DrawText()

+0

Спасибо большое. Оно работает. – dinghim