new QGraphicsView时左上角多一个缩略图,该怎么删除
时间: 2024-01-14 16:02:01 浏览: 25
在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中的缩略图。