Qt QTransform offers several more optimized ways to build a transformed / scaled QTransform matrix using these static methods:
Now I need a rotary transformation, and I thought it would be nice to have one too QTransform::fromRotate. But this does not exist.
In my case, I modify the existing transformation corresponding to the interaction with the mouse, for example, pan, zoom and rotate.
void MapDrawingItem::wheelEvent(QWheelEvent* event)
{
m_view_transform *= QTransform::fromTranslate(-event->posF().x(), -event->posF().y());
if((event->modifiers() & Qt::ControlModifier) == Qt::ControlModifier)
m_view_transform *= QTransform().rotate(event->delta() / 30.);
else
{
auto factor = qPow(1.001, event->delta());
m_view_transform *= QTransform::fromScale(factor, factor);
}
m_view_transform *= QTransform::fromTranslate(event->posF().x(), event->posF().y());
emit signalViewTransformChanged(m_view_transform);
update();
}
The code works correctly, but I would like to replace QTransform().rotate(...)withQTransform::fromRotate(...)
Why does this method no longer exist? I just can't imagine the Qt developers forgetting about it. Is there something that makes this impossible?