Qt QGraphicsScene & QGraphicsPixmapItem: 调整图像大小以适应视图
要使QGraphicsScene在设置不同大小的图像时,view不会太小,可以使用以下方法:\n\n1. 在设置图像之前,先获取视图的当前大小,可以使用QGraphicsView的size()函数来获取视图的当前大小。\n\n2. 在设置图像之前,使用QGraphicsScene的setSceneRect()函数设置场景的大小。可以根据视图的大小来设置场景的大小,以确保图像不会使视图太小。例如,可以使用视图的宽度和高度来设置场景的大小,如下所示:\n\nQSize viewSize = view->size();\nscene->setSceneRect(0, 0, viewSize.width(), viewSize.height());\n\n\n3. 在设置图像时,可以使用QGraphicsPixmapItem的setScale()函数来缩放图像的大小。可以根据图像的大小和视图的大小来计算缩放比例,以确保图像适合视图。例如,可以使用视图的宽度和高度与图像的宽度和高度的比例来计算缩放比例,如下所示:\n\nQSize imageSize = pixmapItem->pixmap().size();\nfloat scale = qMin(viewSize.width() / imageSize.width(), viewSize.height() / imageSize.height());\npixmapItem->setScale(scale);\n\n\n4. 在调整图像大小后,可以使用QGraphicsView的fitInView()函数来将图像调整为适合视图的大小。可以将图像的边界矩形作为参数传递给fitInView()函数,以确保图像填充整个视图。例如,可以使用图像的边界矩形来调整图像的大小,如下所示:\n\nQRectF bounds = pixmapItem->boundingRect();\nview->fitInView(bounds, Qt::KeepAspectRatio);\n\n\n通过以上步骤,可以确保当设置不同大小的图像时,QGraphicsScene的视图不会太小。
原文地址: https://www.cveoy.top/t/topic/qjFd 著作权归作者所有。请勿转载和采集!