我要构造一个类似word中画图功能实现画一个矩形可以拖动缩放、旋转
如果通过QTransform旋转坐标系,当矩形中心不在设备坐标中心旋转是不是会出问题?
有没有办法直接旋转矩形,类似rect,rotate这种效果。
还是说用QGraphicsItem更容易实现一点?
------解决思路----------------------

void Widget::paintEvent(QPaintEvent *) {
QPainter painter(this);
QRect rect1(100, 100, 100, 100);
QRect rect2(300, 100, 100, 100);
painter.drawRect(rect1);
rotateAndPaintRect(&painter, rect1, 45);
painter.drawRect(rect2);
rotateAndPaintRect(&painter, rect2, 15);
rotateAndPaintRect(&painter, rect2, 30);
rotateAndPaintRect(&painter, rect2, 45);
rotateAndPaintRect(&painter, rect2, 60);
rotateAndPaintRect(&painter, rect2, 75);
}
// 绕矩形的中心旋转矩形
void Widget::rotateAndPaintRect(QPainter *painter, const QRect &rect, int angle) {
QRect rotatedRect(-rect.width()/2, -rect.height()/2, rect.width(), rect.height());
int cx = rect.x() + rect.width() / 2;
int cy = rect.y() + rect.height() / 2;
painter->save();
painter->translate(cx, cy);
painter->rotate(angle);
painter->drawRect(rotatedRect);
painter->restore();
}