QGraphicsView* view = new QGraphicsView(this); QGraphicsScene* scene = new QGraphicsScene(this);在.h文件中使用这两个时,左上角会多一个缩略小图,不想要这个缩略图
时间: 2023-08-26 09:10:26 浏览: 79
这个缩略图是 QGraphicsView 的默认行为,可以通过设置 QScrollBarPolicy 来关闭它。在你的代码中,可以在创建 QGraphicsView 对象后添加以下代码:
```cpp
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
```
这将禁用垂直和水平滚动条,并删除缩略图。如果你只想禁用缩略图,可以尝试设置 viewportUpdateMode 属性:
```cpp
view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
```
这种方式会保留滚动条,但禁用缩略图。
相关问题
QGraphicsView* view = new QGraphicsView(this); QGraphicsScene* scene = new QGraphicsScene(this);
这段代码创建了一个名为 `view` 的 `QGraphicsView` 对象,并将其添加到当前对象的父对象中。接着创建了一个名为 `scene` 的 `QGraphicsScene` 对象,并将其添加到当前对象的父对象中。这个场景可以在视图中显示,它可以包含各种 `QGraphicsItem` 对象(如 `QGraphicsPixmapItem`、`QGraphicsTextItem` 等),这些对象可用于绘制图形和文本等内容。通过 `view->setScene(scene)` 将 `scene` 对象设置为 `view` 的场景,即在视图中显示场景中的内容。
QGraphicsView* view = new QGraphicsView(this); QGraphicsScene* scene = new QGraphicsScene(this);在.h文件中使用这两个时,左上角会多一个缩略小图
这个缩略小图是 QGraphicsView 的默认行为,它用来显示整个场景的缩略图。如果你不想显示这个缩略图,可以通过以下两种方法解决:
方法一:在构造函数中设置
在构造函数中添加以下代码:
```
view->setViewport(new QOpenGLWidget);
view->setOptimizationFlag(QGraphicsView::DontAdjustForAntialiasing, true);
view->setRenderHint(QPainter::Antialiasing, false);
view->setRenderHint(QPainter::SmoothPixmapTransform, false);
view->setDragMode(QGraphicsView::ScrollHandDrag);
view->setOptimizationFlag(QGraphicsView::DontSavePainterState, true);
```
这些设置可以关闭缩略图,并且可以提高绘制效率。
方法二:在显示前设置
在显示前,添加以下代码:
```
view->setScene(scene);
view->setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
view->setDragMode(QGraphicsView::ScrollHandDrag);
view->setOptimizationFlag(QGraphicsView::DontAdjustForAntialiasing, true);
view->setOptimizationFlag(QGraphicsView::DontSavePainterState, true);
```
这些设置同样可以关闭缩略图,并且可以提高绘制效率。
阅读全文