QGraphicsView左上角有个缩略图
时间: 2023-09-17 09:11:49 浏览: 89
是的,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时左上角多一个缩略图,该怎么删除
在Qt中,QGraphicsView的左上角的缩略图称为“Viewport”,它是由QGraphicsView内部的QGraphicsScene生成的。如果您想要删除它,可以通过以下几种方式实现:
1. 设置QGraphicsView的属性
您可以设置QGraphicsView的属性来禁用视口:
```cpp
QGraphicsView *view = new QGraphicsView;
view->setViewportUpdateMode(QGraphicsView::NoViewportUpdate);
```
这将禁用视口并删除缩略图。
2. 设置QGraphicsScene的属性
如果您不想禁用整个视口,而只是想禁用缩略图,可以设置QGraphicsScene的属性:
```cpp
QGraphicsScene *scene = new QGraphicsScene;
scene->setSceneRect(QRectF(0, 0, 100, 100));
scene->setItemIndexMethod(QGraphicsScene::NoIndex);
```
将setItemIndexMethod()设置为QGraphicsScene::NoIndex将禁用缩略图。
3. 自定义QGraphicsView
您可以继承QGraphicsView并重写resizeEvent()函数来删除视口:
```cpp
class CustomGraphicsView : public QGraphicsView {
public:
CustomGraphicsView(QWidget *parent = nullptr) : QGraphicsView(parent) {}
protected:
void resizeEvent(QResizeEvent *event) override {
QGraphicsView::resizeEvent(event);
setViewportUpdateMode(QGraphicsView::NoViewportUpdate);
}
};
```
然后,您可以使用CustomGraphicsView而不是QGraphicsView来创建您的视图。
我希望这些方法中的至少一个可以帮助您删除QGraphicsView中的缩略图。