new QGraphicsView时有个缩略图,该怎么删除
时间: 2023-08-26 21:10:28 浏览: 37
在Qt中,QGraphicsView类的缩略图通常是由QGraphicsScene类自动生成的。如果你想要禁用缩略图,可以尝试以下两种方法:
1. 通过设置QGraphicsView的viewportUpdateMode属性为QGraphicsView::FullViewportUpdate来禁用缩略图:
```cpp
QGraphicsView* view = new QGraphicsView();
view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
```
2. 如果你想要完全删除缩略图,可以在创建QGraphicsView之后直接删除QGraphicsScene中的缩略图。示例如下:
```cpp
QGraphicsView* view = new QGraphicsView();
view->setScene(new QGraphicsScene());
// 删除缩略图
view->scene()->setSceneRect(view->scene()->itemsBoundingRect());
```
以上代码将QGraphicsScene的场景矩形设置为场景中所有项的边界矩形,这将导致缩略图被删除。
相关问题
new QGraphicsView时左上角多一个缩略图,该怎么删除
这个缩略图是 QGraphicsView 自带的场景缩略图,可以通过以下代码禁用:
```
QGraphicsView *view = new QGraphicsView(parent);
view->setScene(scene);
view->setRenderHint(QPainter::Antialiasing);
view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
view->setDragMode(QGraphicsView::ScrollHandDrag);
view->setInteractive(true);
view->setRenderHint(QPainter::SmoothPixmapTransform, true);
view->setRenderHint(QPainter::HighQualityAntialiasing, true);
view->setOptimizationFlag(QGraphicsView::DontAdjustForAntialiasing, true);
view->setOptimizationFlag(QGraphicsView::DontSavePainterState, true);
view->setViewport(new QOpenGLWidget);
view->setSceneRect(scene->sceneRect());
// Disable the scene thumbnail
view->setSceneThumbnailEnabled(false);
```
在上面的代码中,我们使用了 `setSceneThumbnailEnabled(false)` 来禁用场景缩略图。
view = new QGraphicsView(ui->graphicsView); scene = new QGraphicsScene(ui->graphicsView);左上角有个缩略图怎么办
你可以通过设置 QGraphicsView 的属性,禁用缩略图的显示。具体来说,你可以将 QGraphicsView 的属性 `OptimizationFlag` 设置为 `DontAdjustForAntialiasing`,以避免出现缩略图。
代码如下:
```
view = new QGraphicsView(ui->graphicsView);
view->setOptimizationFlag(QGraphicsView::DontAdjustForAntialiasing);
scene = new QGraphicsScene(ui->graphicsView);
```
另外,如果你想完全禁用缩略图,你可以将 QGraphicsView 的属性 `ViewportUpdateMode` 设置为 `FullViewportUpdate`,这样就不会再出现缩略图了。
代码如下:
```
view = new QGraphicsView(ui->graphicsView);
view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
scene = new QGraphicsScene(ui->graphicsView);
```