我成功地使用以下代码将 QTextEdit 的内容呈现到 QPixmap。但这对于 QPlainTextEdit 来说失败了。当我使用 QPlainTextEdit 而不是 QTextEdit 时,它呈现的内容没有任何颜色(全部为黑色/白色)。
QPixmap* pixmap = new QPixmap(width, height);
QPainter* painter = new QPainter(pixmap);
painter->fillRect( 0, 0, width, height, QColor(247, 247, 247) );
painter->setRenderHints(QPainter::SmoothPixmapTransform |
QPainter::HighQualityAntialiasing |
QPainter::TextAntialiasing);
m_pTextEdit->document()->drawContents(painter);
我们如何用颜色渲染 QPlainTextEdit 的内容?请注意,
- 如果我们在 QPlainTextEdit 中将文本设置为 html,那么它会生成彩色输出。
- 我正在使用
QSyntaxHighlighter::setFormat
函数来设置文本颜色。
我正在使用 Qt4.8.5、VS2008、Windows7