2024年3月13日发(作者:)

qt qgraphicsscene用法

`QGraphicsScene` 是 Qt 中用于管理 2D 图形项的场景(Scene)类。它提供了一个二维的

可视化区域,可以在这个区域中添加、移动和交互图形项。`QGraphicsScene` 通常与

`QGraphicsView` 一起使用,后者是用于查看和交互场景内容的视图类。

以下是使用 `QGraphicsScene` 的基本用法:

1. 创建 `QGraphicsScene` 对象:

```cpp

QGraphicsScene scene;

```

2. 添加图形项:

你可以通过 `addItem` 方法向场景添加图形项。图形项可以是 `QGraphicsItem` 的子类,

例如 `QGraphicsRectItem`、`QGraphicsEllipseItem` 等。

```cpp

QGraphicsRectItem *rectangle = new QGraphicsRectItem(0, 0, 100, 100);

m(rectangle);

```

3. 创建图形项并设置属性:

```cpp

QGraphicsEllipseItem *ellipse = new QGraphicsEllipseItem(0, 0, 50, 50);

ellipse->setPos(150, 150);

ellipse->setBrush(QBrush(Qt::red));

m(ellipse);

```

4. 创建 `QGraphicsView` 对象并设置场景:

```cpp

QGraphicsView view(&scene);

```

5. 显示窗口:

```cpp

();

```

完整的例子可能如下所示:

```cpp

#include

#include

#include

#include

int main(int argc, char *argv[]) {

QApplication a(argc, argv);

// 创建场景

QGraphicsScene scene;

// 添加矩形图形项

QGraphicsRectItem *rectangle = new QGraphicsRectItem(0, 0, 100, 100);

m(rectangle);

// 添加椭圆图形项

QGraphicsEllipseItem *ellipse = new QGraphicsEllipseItem(0, 0, 50, 50);

ellipse->setPos(150, 150);

ellipse->setBrush(QBrush(Qt::red));

m(ellipse);

// 创建视图并设置场景

QGraphicsView view(&scene);

// 显示窗口

();

return ();

}

```