QGraphicsView左上角有个缩略图
时间: 2023-09-17 22:11:49 浏览: 171
是的,QGraphicsView的左上角通常会显示一个缩略图,它可以让用户快速预览整个场景并在其中进行导航。这个缩略图通常由QGraphicsScene的缩略图生成器提供,你可以通过QGraphicsView的setViewportUpdateMode()函数来设置它的更新模式,以实现更好的性能和交互体验。如果你需要更多的信息,可以查看Qt官方文档中有关QGraphicsView和QGraphicsScene的部分。
相关问题
QGraphicsView左上角有个缩略图,但是我不想要
如果你不想要QGraphicsView左上角的缩略图,可以通过以下两种方式来实现:
1. 设置QGraphicsView的viewportUpdateMode为QGraphicsView::FullViewportUpdate。这样做会禁用缩略图,但也会降低渲染性能。
```cpp
view->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
```
2. 通过子类化QGraphicsView并覆盖viewportEvent()方法,在该方法中拦截缩略图更新事件。
```cpp
class CustomView : public QGraphicsView {
protected:
bool viewportEvent(QEvent *event) override {
if (event->type() == QEvent::Paint && !scene()->isEmpty()) {
// 绘制场景
QPainter painter(viewport());
scene()->render(&painter);
return true;
}
return QGraphicsView::viewportEvent(event);
}
};
```
然后将QGraphicsView替换为CustomView即可。这种方法不会影响渲染性能,但是需要手动绘制场景。
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)` 来禁用场景缩略图。
阅读全文