guneysus
1/11/2014 - 6:00 PM

vtk-qt-demo.py

"""
A simple example that uses the QVTKRenderWindowInteractor
class.
"""

try:
    from PySide import QtCore, QtGui
except ImportError:
    try:
        from PyQt4 import QtCore, QtGui
    except ImportError as err:
        raise ImportError("Cannot load either PyQt or PySide")

if __name__ == '__main__':
    # every QT app needs an app
    app = QtGui.QApplication(['QVTKRenderWindowInteractor'])

    # create the widget
    widget = QVTKRenderWindowInteractor()
    widget.Initialize()
    widget.Start()

    # if you dont want the 'q' key to exit comment this.
    widget.AddObserver("ExitEvent", lambda o, e, a=app: a.quit())

    ren = vtk.vtkRenderer()
    widget.GetRenderWindow().AddRenderer(ren)

    cone = vtk.vtkConeSource()
    cone.SetResolution(8)

    coneMapper = vtk.vtkPolyDataMapper()
    coneMapper.SetInputConnection(cone.GetOutputPort())

    coneActor = vtk.vtkActor()
    coneActor.SetMapper(coneMapper)

    ren.AddActor(coneActor)

    widget.SetPicker(vtk.vtkPointPicker())

    # show the widget
    widget.show()

    # start event processing
    sys.exit(app.exec_())