我正在尝试创建一个用于查看照片的应用程序。为此,我已经将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
我在这里可能会缺少什么?
答案 0 :(得分:1)
重新实现QWidget::resizeEvent
并使用您的代码对我来说很好。我注意到你添加新的QGraphicsPixmapItem
时没有删除它,你应该这样做(QGraphicsScene::clear)。
顺便说一下,您只需要将场景设置为视图一次。您已经在构造函数中执行此操作,因此在ImageWidget::setImage
方法中不需要它。