Qt World Summit: Register Today!

Rendering a QGraphicsTextItem with ObjectReplacementCharacter

  • Hello.

    I have a QGraphicScene with a QGraphicsTextItem. This text item contains some normal text, and an ObjectReplacementCharacter with a QTextImageFormat that displays an image in the text. Everything works fine when the scene renders the item, but now I want to drag the item, and for that I'd like to render it to a QPixmap. I call QGraphicsTextItem::paint() manually, with a painter that draws on the QPixmap. The normal text renders correctly, but the image is not visible.
    My code looks like this
    QPixmap pixmap(/* size of the item */);
    QPainter painter(&pixmap);
    QStyleOptionGraphicsItem styleOptions;
    styleOptions.rect = pixmap.rect();
    styleOptions.exposedRect = pixmap.rect();
    styleOptions.direction = view()->viewport()->layoutDirection();
    paint(&painter, &styleOptions, view()->viewport());

    view() returns the QGraphicsView I am using. This code works for QGraphicsTextItems with normal text, and for custom items that draw Images (with QPainter::drawImage()). But it seems to ignore images included in QGraphicsTextItems via a ObjectReplacementCharacter.
    Can anybody think of a reason for that?

Log in to reply