引用第6楼watera于2009-08-13 07:18发表的 :
这个方法太麻烦.
先创建QImage,然后用个QPainter把文字写到image里就行了,这样还能用抗锯齿
更改了一下,图像效果是好一点了,
上面的是转换前的,转换后,还有点小问题,不知是什么原因?
1. 间距好像被拉大了,而且最后一行的保存也不完整,
2. painter.drawText(this->rect(), Qt::AlignLeft,str);
这个函数好像有左右对齐的功能,如果改成右对齐,或居中对齐后图像就消失了。
这是更改后的代码:
- // 获取整个文档的Image
- QImage cgTextEdit::getDocumentImage()
- {
- QRectF rect(QPointF(0,0), document()->size());
- QImage image = _createImageAndClearToAlpha(document()->size().toSize());
- QPainter painter(&image);
- QFont textFont = this->font();
- painter.setFont(textFont);
- QColor textColor(Qt::black);
- painter.setPen(textColor);
- QString str = document()->toPlainText ();
- painter.drawText(this->rect(), Qt::AlignLeft,str);
- return image;
- }
[ 此帖被robertkun在2009-08-13 10:01重新编辑 ]