QGraphicsView* view = new QGraphicsView(this); QGraphicsScene* scene = new QGraphicsScene(this);
时间: 2024-02-02 18:57:42 浏览: 15
这段代码创建了一个名为 `view` 的 `QGraphicsView` 对象,并将其添加到当前对象的父对象中。接着创建了一个名为 `scene` 的 `QGraphicsScene` 对象,并将其添加到当前对象的父对象中。这个场景可以在视图中显示,它可以包含各种 `QGraphicsItem` 对象(如 `QGraphicsPixmapItem`、`QGraphicsTextItem` 等),这些对象可用于绘制图形和文本等内容。通过 `view->setScene(scene)` 将 `scene` 对象设置为 `view` 的场景,即在视图中显示场景中的内容。
相关问题
QGraphicsView* view = new QGraphicsView(this); QGraphicsScene* scene = new QGraphicsScene(this);使用这两个时,左上角会多一个小图
这个小图是 QGraphicsView 的默认背景,它通常用于显示场景区域的边框。如果你不希望显示这个小图,可以通过以下两种方式之一来禁用它:
1. 在创建 QGraphicsView 对象时,通过以下代码禁用默认背景:
```cpp
QGraphicsView* view = new QGraphicsView(this);
view->setBackgroundBrush(Qt::NoBrush);
```
2. 在设置场景时,通过以下代码设置场景的背景为透明色:
```cpp
QGraphicsScene* scene = new QGraphicsScene(this);
scene->setBackgroundBrush(Qt::transparent);
QGraphicsView* view = new QGraphicsView(scene, this);
```
这样就可以禁用默认背景,让视图区域完全透明。
QGraphicsView* view = new QGraphicsView(this); QGraphicsScene* scene = new QGraphicsScene(this);在.h文件中使用这两个时,左上角会多一个缩略小图
这个缩略图是 QGraphicsView 的默认行为,它显示了场景中的完整视图,并且可以用鼠标拖动来改变视图。如果你不想要这个缩略图,可以通过以下两种方式之一来禁用它:
1. 在创建 QGraphicsView 对象时将 showScrollBars 参数设置为 false:
```
QGraphicsView* view = new QGraphicsView(this);
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
```
2. 在构造函数中设置 QGraphicsView 的属性:
```
QGraphicsView* view = new QGraphicsView(this);
view->setRenderHint(QPainter::Antialiasing);
view->setInteractive(true);
view->setScene(scene);
view->setDragMode(QGraphicsView::ScrollHandDrag);
view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
view->setOptimizationFlag(QGraphicsView::DontAdjustForAntialiasing, true);
view->setOptimizationFlag(QGraphicsView::DontSavePainterState, true);
view->setOptimizationFlag(QGraphicsView::DontAdjustSceneRect, true);
view->setOptimizationFlag(QGraphicsView::IndirectPainting, true);
```