qpainter 旋转90度,写一个例子
时间: 2024-11-17 20:30:23 浏览: 8
使用QPainter画一个3D正方体
`qpainter` 是 Qt 库中的一个绘图类,用于在图形界面(GUI)上进行复杂的绘画操作,包括旋转。如果你想要使用 `QPainter` 对象旋转画布,你可以这样做:
```cpp
#include <QtWidgets>
#include <QGraphicsView>
#include <QGraphicsScene>
#include <QPainter>
class MyWidget : public QWidget {
public:
MyWidget(QWidget *parent = nullptr) : QWidget(parent) {
// 创建画布和视图
QGraphicsView *view = new QGraphicsView(this);
QGraphicsScene *scene = new QGraphicsScene(view);
// 设置背景为白色
scene->setBackgroundBrush(Qt::white);
// 创建一个矩形作为图形对象并设置初始位置
QRectF rect(50, 50, 100, 100); // 宽高各100像素,左上角坐标为(50,50)
QPainterPath path;
path.addRect(rect);
QGraphicsRectItem *item = new QGraphicsRectItem(path, scene);
item->setPos(150, 150);
// 创建 qpainter 并设置旋转
QPainter painter(scene);
painter.rotate(90); // 旋转90度
// 使用旋转后的 qpainter 绘制图形
painter.setPen(QPen(Qt::red)); // 红色描边
painter.drawPath(item->shape()); // 画出矩形的实际边界
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MyWidget widget;
widget.show();
return app.exec();
}
```
在这个例子中,我们首先创建了一个 `MyWidget` 类,并在其中初始化了一个 `QGraphicsView` 和 `QGraphicsScene`。然后创建一个矩形并将其添加到场景中。接着,我们在 `QPainter` 中旋转了90度,最后用旋转后的 `qpainter` 绘制矩形,使其看起来像是被旋转了。
阅读全文