def __init__(self, name="qt vtk figure", parent=None): self.qapp = QApplication.instance() or QApplication(sys.argv) QWidget.__init__(self, parent) BaseFigure.__init__(self, name) self.vl = QVBoxLayout() self.setLayout(self.vl) self._vtkWidget = QVTKRenderWindowInteractor(self) self.vl.addWidget(self.vtkWidget) self.renWin self.iren
def show(self, block=None): if not hasattr(self, "vtkWidget"): self._re_init() self._connect_renderer() QWidget_show(self) self.iren.Initialize() self.renWin.Render() self.iren.Start() if block is None: block = self.parent() is None if block: self._flush_stdout() self.qapp.exec_() BaseFigure.show(self, block)
def _prep_for_screenshot(self, off_screen=False): BaseFigure._prep_for_screenshot(self, off_screen) self.renWin.SetOffScreenRendering(off_screen) self.render()
def close(self): QWidget.close(self) # closeEvent seems to be called anyway but call this just to be sure. self.on_close() BaseFigure.close(self)
def _prep_for_screenshot(self, off_screen=False): BaseFigure._prep_for_screenshot(self, off_screen) if off_screen: print("Off screen rendering can't be done using QtFigures.") self.show(block=False)
def update(self): BaseFigure.update(self) QWidget.update(self) self.qapp.processEvents()