gpt4 book ai didi

c++ - 当 MainWindow 最大化时最大化 QGraphicsView 中的视口(viewport)

转载 作者:行者123 更新时间:2023-11-28 06:27:58 24 4
gpt4 key购买 nike

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

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

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

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

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

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

我可能在这里遗漏了什么?

最佳答案

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

顺便说一句,你只需要将场景设置到 View 一次。您已经在构造函数中执行此操作,因此您不需要在 ImageWidget::setImage 方法中使用它。

关于c++ - 当 MainWindow 最大化时最大化 QGraphicsView 中的视口(viewport),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28188124/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com