# EmbedInPyQt2

VTKExamples/Python/Widgets/EmbedInPyQt2

### Description

Another example on how to embed VTK in PyQT, with a QVTKRenderWindowInteractor

### Code

EmbedInPyQt2.py

    #!/usr/bin/env python
    # Contributed by Eric E Monson

    from PyQt4 import QtCore, QtGui
    from PyQt4.QtGui import QApplication
    import vtk
    from vtk.qt4.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
    import sys

    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(603, 553)
            self.centralWidget = QtGui.QWidget(MainWindow)
            self.gridlayout = QtGui.QGridLayout(self.centralWidget)
            self.vtkWidget = QVTKRenderWindowInteractor(self.centralWidget)
            self.gridlayout.addWidget(self.vtkWidget, 0, 0, 1, 1)
            MainWindow.setCentralWidget(self.centralWidget)

    class SimpleView(QtGui.QMainWindow):

        def __init__(self, parent = None):
            QtGui.QMainWindow.__init__(self, parent)
            self.ui = Ui_MainWindow()
            self.ui.setupUi(self)
            self.ren = vtk.vtkRenderer()
            self.ui.vtkWidget.GetRenderWindow().AddRenderer(self.ren)
            self.iren = self.ui.vtkWidget.GetRenderWindow().GetInteractor()

            # Create source
            source = vtk.vtkSphereSource()
            source.SetCenter(0, 0, 0)
            source.SetRadius(5.0)

            # Create a mapper
            mapper = vtk.vtkPolyDataMapper()
            mapper.SetInputConnection(source.GetOutputPort())

            # Create an actor
            actor = vtk.vtkActor()
            actor.SetMapper(mapper)

            self.ren.AddActor(actor)

    if __name__ == "__main__":

        app = QApplication(sys.argv)
        window = SimpleView()
        window.show()
        window.iren.Initialize() # Need this line to actually show the render inside Qt
        sys.exit(app.exec_())