我正在使用 QGraphicsView/QGraphicsScene 来显示图像。图像始终以其原始大小显示,并在末端带有滚动条。我希望 QGraphicsView 根据窗口的大小自动适应图像,保持纵横比。
我尝试了这个,但什么也没发生:
ui->graphicsView->fitInView(0,0,ui->graphicsView->width(),ui->graphicsView->height(),Qt::KeepAspectRatio);
您提供的是视图的矩形,而不是场景的矩形。
这应该有效:
ui->graphicsView->fitInView(scene->itemsBoundingRect() ,Qt::KeepAspectRatio);
itemsBoundingRect https://doc.qt.io/qt-6/qgraphicsscene.html#itemsBoundingRect计算并返回场景中所有项目的边界矩形。因此,图形视图的视图矩阵将被缩放以适应场景的内容。
我建议你重新实现resizeEvent https://doc.qt.io/qt-6/qgraphicsview.html#resizeEvent并在那里也有这个电话。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)