2017-02-17 21 views
1

У меня проблема с pyqtgraph и моим недостатком понимания, я думаю. У меня есть код (см. Ниже), который работает для встраивания «ImageItem» внутри окна разработчика pyqt. Однако я хочу использовать «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

Извините, не знал о принятии –

 Смежные вопросы

  • Нет связанных вопросов^_^