在pyqtgraph中将图像拉伸到窗口大小

时间:2015-06-26 17:15:55

标签: qt pyqt4 pyqtgraph

我目前正在尝试创建一个PyQtGraph gui,以便在使用与此类似的代码进入新数据时重复绘制图像:

self.app = QtGui.QApplication([])
self.win = QtGui.QMainWindow()
self.win.resize(800, 600)
self.imv = pg.ImageView()
self.win.setCentralWidget(self.imv)
self.win.setWindowTitle('My Title')
self.timer = QtCore.QTimer()
self.timer.timeout.connect(self.check_for_new_data_and_replot)
self.timer.start(100)
self.win.show()

然后每次我获得新数据时我都会绘制图像:

self.imv.setImage(self.data_array)

我遇到的一个问题是我的数据阵列通常具有偏斜的宽高比,即它通常真的很高而且很瘦。"或者"短而胖",并且绘制的图像具有相同的比例。

有没有办法拉伸图像以适应窗口?我查看了ImageViewImageItem的文档,但无法找到我需要的内容。 (也许它就在那里,但我无法识别它。)

1 个答案:

答案 0 :(得分:2)

我想通了 - 使用较低级别的ImageItem类以一种拉伸以适合窗口大小的方式显示图像:

self.app = QtGui.QApplication([])
self.win = pg.GraphicsLayoutWidget()
self.win.resize(800, 600)
self.img = pg.ImageItem()
self.plot = self.win.addPlot()
self.plot.addItem(self.img)
self.win.setWindowTitle('My Title')
self.timer = QtCore.QTimer()
self.timer.timeout.connect(self.check_for_new_data_and_replot)
self.timer.start(100)
self.win.show()

并更新图像数据:

self.img.setImage(self.data_array)

这也让我可以在两侧显示轴刻度,这也是我想要的功能。