import sys
from vtk import vtkRenderer, vtkRenderWindow, vtkGenericOpenGLRenderWindow, \
                vtkImplicitPlaneWidget2, vtkImplicitPlaneRepresentation, \
                QVTKWidget, QVTKWidget2
                
from PyQt4.QtGui import QApplication

app = QApplication(sys.argv)

qvtk = None; win2 = None
ren = vtkRenderer()
if sys.argv[1] == "1":
    print "Using QVKTWidget"
    qvtk = QVTKWidget()
    win2 = vtkRenderWindow()
else:
    print "Using QVKTWidget2"
    qvtk = QVTKWidget2()
    win2 = vtkGenericOpenGLRenderWindow()
    #important: the window first needs to be shown so that the
    #correct size can be set for the interactor, see QVTKWidget2.cxx:173
    qvtk.show()

win2.AddRenderer(ren)
qvtk.SetRenderWindow(win2)

p = vtkImplicitPlaneRepresentation()
p.SetPlaceFactor(1.0)
p.SetOrigin(0.25,0.25,0.25)
p.PlaceWidget([0,1,0,2,0,3])
p.SetNormal(1,0,0)
p.OutlineTranslationOff()

pw = vtkImplicitPlaneWidget2()
pw.SetRepresentation(p)

pw.SetInteractor(qvtk.GetInteractor())
pw.On()

ren.ResetCamera()
qvtk.show()
app.exec_()