2017-02-17 122 views
1

我遇到了pyqtgraph的问题,以及我认为我缺乏理解。 我有一些代码(见下文),它用于在pyqt设计器窗口内嵌入“ImageItem”。但是,我希望使用“ImageView”,以便我可以使用其他一些功能(例如z轴滑块)。我怎样才能做到这一点?当我改变命令“的ImageView”我收到以下错误将pg.ImageItem转换为pg.ImageView以显示图像和z轴滑块

AttributeError的:“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 

回答

1

这是如何将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,但可以很容易地改变。

+0

太好了,非常感谢!这正是我需要的 –

+0

对不起,不知道接受 –

相关问题