将 pg.ImageItem 转换为 pg.ImageView 以显示图像和 z 轴滑块

Convert pg.ImageItem to pg.ImageView to show image and z-axis slider

我对 pyqtgraph 有疑问,我认为我缺乏理解。 我有一些代码(见下文)可用于在 pyqt 设计器 window 中嵌入 "ImageItem"。但是我希望使用 "ImageView" 以便我可以使用一些其他功能(例如 z 轴滑块)。我怎样才能做到这一点?当我将命令更改为 "ImageView" 时,出现以下错误

A​​ttributeError: 'ImageView' 对象没有属性 'zValue'

谁能告诉我哪里出错了。感谢您对此的任何帮助。

from PyQt5 import uic, QtCore, QtGui, QtWidgets
import sys

import pyqtgraph as pg
import numpy as np

class ViewData(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        super(ViewData, self).__init__(parent)
        uic.loadUi('test.ui',self)

        win = pg.GraphicsLayout()
        p = win.addViewBox()

        imv = pg.ImageItem()
        self.view.setCentralItem(win)
        self.view.show()

        imagedata = np.random.random((256,256))
        imv.setImage(imagedata)
        p.addItem(imv)

def main():
    app = QtWidgets.QApplication(sys.argv)      # A new instance of QApplication
    vd = ViewData()                             # We set the form to be our MainWindow (design)
    vd.show()                                   # Show the form
    app.exec_()                                 # and execute the app

if __name__ == '__main__':                      # if we're running file directly and not importing it
    main()                                      # run the main function

这就是您将 ImageView 添加到 QtWidget 的方式。

from PyQt4 import QtGui
import sys

import pyqtgraph as pg
import numpy as np

class ViewData(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(ViewData, self).__init__(parent)
        self.widget = QtGui.QWidget()
        self.widget.setLayout(QtGui.QHBoxLayout())

        imv = pg.ImageView()
        imagedata = np.random.rand(256,256)
        imv.setImage(imagedata)

        self.widget.layout().addWidget(imv)
        self.setCentralWidget(self.widget)
        self.show()


def main():
    app = QtGui.QApplication(sys.argv)      
    vd = ViewData()               
    vd.show()                      
    app.exec_()                  

if __name__ == '__main__':
    main()     

它在 PyQt4 中,但可以轻松更改。