Qt中QGraphicsView无法自适应图片大小问题
时间: 2023-06-26 15:07:25 浏览: 724
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
5星 · 资源好评率100%
如果你的QGraphicsView无法自适应图片大小,可以尝试以下几种方法:
1. 设置QGraphicsView的viewportUpdateMode属性为QGraphicsView::FullViewportUpdate,这样会在每次视图大小发生变化时重新绘制。
2. 调用QGraphicsView的fitInView()函数,让图像自适应视图大小。可以在加载图片后,或者视图大小发生变化时调用。
3. 重载QGraphicsView的resizeEvent()函数,在其中重新计算并设置场景大小和视图大小。
下面是示例代码:
```cpp
// 设置viewportUpdateMode属性
graphicsView->setViewportUpdateMode(QGraphicsView::FullViewportUpdate);
// 调用fitInView()函数
graphicsView->fitInView(scene->sceneRect(), Qt::KeepAspectRatio);
// 重载resizeEvent()函数
void MyGraphicsView::resizeEvent(QResizeEvent* event)
{
QGraphicsView::resizeEvent(event);
fitInView(scene->sceneRect(), Qt::KeepAspectRatio);
}
```
注意,以上方法应该在QGraphicsView和QGraphicsScene的初始化之后才能执行。
阅读全文