PyQt4:图形视图和Pixmap尺寸

时间:2015-06-20 08:03:39

标签: python qt pyqt4 qgraphicsview qpixmap

我正在使用QTDesigner开发一个用于某些图像处理任务的GUI。我在网格布局中有两个图形视图。两者都应显示图像,稍后我将添加叠加层。

我创建了我的Pixmap img_pixmap 并将其添加到我的场景中。然后将此场景添加到我的图形视图中。由于我的图像远大于我的屏幕尺寸,因此我应用 fitInView()。在代码中:

self.img_pixmap_p =  self.img_scene.addPixmap(img_pixmap)
self.img_view.setScene(self.img_scene)
self.img_scene.setSceneRect(QtCore.QRectF())
self.img_view.fitInView(self.img_scene.sceneRect(), QtCore.Qt.KeepAspectRatio)

到目前为止,这么好,但我如何摆脱图像视图周围的空白区域?理想情况下,我希望我的pixmap使用图形视图的整个宽度并保持纵横比,图形视图应相应地调整其高度。关于如何以直截了当的方式实现这一目标的任何想法?

这是一张图片,可以更好地了解我得到的内容:

Nobody likes white borders

如您所见,有白色边框,我想避免。

1 个答案:

答案 0 :(得分:0)

好的,我是按照帕维尔的建议做的:

img_aspect_ratio =  float(pixmap.size().width()) / pixmap.size().height() 
width = img_view.size().width()
img_view.setFixedHeight( width / img_aspect_ratio )
img_view.fitInView(img_scene.sceneRect(), QtCore.Qt.KeepAspectRatio)

在每个resizeEvent()中调用它时,它可以正常工作。