[Qt-interest] Keep Same QGraphicsItem's Pen Width Across Scaling

Ben Swerts benswerts at telenet.be
Fri Oct 2 17:38:02 CEST 2009


Hi Josiah,

In the paint function of your custom QGraphicsItem you can retrieve the
transformation matrix of the painter (QPainter::transform). You can then
multiply the pen width with the inverse of the scaling value to obtain a
fixed width.

Hope it helps.
Greets,


	Ben 

> I've got a custom QGraphicsItem (simple box) that draws an outline
> around itself, say 3px wide. Great for "normal" live view. However, my
> app also renders an "icon" view of the scene that the box is in - this
> "icon" is about 96x96. Then there's also the "preview" view of the scene
> before it goes live, this is rendered about 320x240. The live scene is
> scaled approx 1:1, so its about 1024x768.
> 
> What I'm wondering is if there's any way for my custom graphics item to
> find out the scale it's being rendered at so that it can adjust it's pen
> width accordingly inorder to render at approx 3px width regardless of
> scale? (The outline isn't always 3px - it can vary depending on various
> other factors [type of box, datapoint the box represents, etc]).
> 
> Any ideas on how to find the scale of the scene from inside the paint
> method of my graphics item?
> 
> Thanks!
> -josiah




More information about the Qt-interest-old mailing list