Есть мой класс, который наследован от QGrahicsView. В нем есть операции с матрицей отображения:
offset.setX(offset.x() + 100);
offset.setY(offset.y() + 50);
qDebug() << "offset=" << offset;
r += 0.5;
QMatrix matrix;
qDebug() << "m1=" << matrix;
matrix.translate(offset.x(), offset.y());
qDebug() << "m2=" << matrix;
matrix.scale(current_scale, current_scale);
matrix.rotate(r);
this->setMatrix(matrix);
offset= QPoint(100,50)
m1= QMatrix(11=1 12=0 21=0 22=1 dx=0 dy=0)
m2= QMatrix(11=1 12=0 21=0 22=1 dx=100 dy=50)
offset= QPoint(200,100)
m1= QMatrix(11=1 12=0 21=0 22=1 dx=0 dy=0)
m2= QMatrix(11=1 12=0 21=0 22=1 dx=200 dy=100)
Проблема в том что вращение есть, масштабирование - есть тоже. А просто сместить картинку - не работает. ЧЯДНТ?
P.S. Конструктор:
setInteractive(true);
// setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
setResizeAnchor(QGraphicsView::NoAnchor);
setTransformationAnchor(QGraphicsView::NoAnchor);
setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
setOptimizationFlag(QGraphicsView::DontSavePainterState, true);
setCacheMode(QGraphicsView::CacheBackground);
setOptimizationFlag(QGraphicsView::DontAdjustForAntialiasing);
current_scale = 1.0;
setTransformationAnchor(QGraphicsView::NoAnchor); - тоже не работает