January 2016
Beginner
512 pages
12h 35m
English
As a last detail, I would like to mention that you can draw an item differently depending on its scale. To do that, the level of detail can be used. You use the passed pointer to QStyleOptionGraphicsItem of the item's paint function and call levelOfDetailFromTransform() with the painter's world transformation. We change the paint function of the ScaleItem item to the following:
const qreal detail = option->levelOfDetailFromTransform(painter->worldTransform()); const QColor fillColor = (detail >= 5) ? Qt::yellow : Qt::red;
The detail parameter now contains the maximum width of unity square, which was mapped to the painter coordinate system via the painter's world transformation ...