当MainWindow最大化时,在QGraphicsView中最大化视口

时间:2015-01-28 08:58:26

标签: c++ qt

我正在尝试创建一个用于查看照片的应用程序。为此,我已经将QWidget(将其命名为ImageWidget)进行了子类化。我在QMainWindow的子类中加载此小部件。

要显示图像,我正在使用QGraphicsView和QGraphicsScene。当我最大化窗口时,加载到QGraphicsView中的图像的大小不会改变。我想根据视口增加和减少图像。

我尝试使用提供的QWidget :: resizeEevent,并使用

this->imageView->fitInView(imageScene->sceneRect(), Qt::KeepAspectRatio);

其中'this'指的是ImageWidget对象(QWidget的子类)。

我正在尝试的代码是在Github:https://github.com/saurabhsood91/qt-photoviewer/blob/master/imagewidget.cpp

我在这里可能会缺少什么?

1 个答案:

答案 0 :(得分:1)

重新实现QWidget::resizeEvent并使用您的代码对我来说很好。我注意到你添加新的QGraphicsPixmapItem时没有删除它,你应该这样做(QGraphicsScene::clear)。

顺便说一下,您只需要将场景设置为视图一次。您已经在构造函数中执行此操作,因此在ImageWidget::setImage方法中不需要它。