2

如何将 QGraphicsTextItem 转换/绘制为 QPixmap?

4

2 回答 2

4

您可以将其添加到 a QGraphicsScene(如果它不在其中),然后使用 arender()将场景添加到aQPixmapQPainter

QPixmap pix(100, 100);
QPainter paint(&pix);
scene.render(&paint);

或者,您可以省去麻烦,只需QPainter::drawText()更改画家的当前字体后即可使用。它应该提供相同的功能。

也许是这样的——

QPixmap pix(100, 100);
QPainter paint(&pix);
paint.drawText(0, 0, "Hello World");
于 2009-08-07T13:06:00.343 回答
0

QGraphicsTextItem::document() 函数是您正在寻找的后门:

// pItem is a QGraphicsTextItem *
QPixmap srcPixmap(pItem->boundingRect().size().toSize());

QPainter tmpPainter(&srcPixmap);
pItem->document()->drawContents(&tmpPainter);
tmpPainter.end()
于 2012-06-09T01:24:12.647 回答