X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8a693e6e0460b6b3c32e4b6f114a3ab7b7cd24ea..f6bcfd974ef26faf6f91a62cac09827e09463fd1:/wxPython/demo/viewer_basics.py diff --git a/wxPython/demo/viewer_basics.py b/wxPython/demo/viewer_basics.py new file mode 100644 index 0000000000..fe71140ec3 --- /dev/null +++ b/wxPython/demo/viewer_basics.py @@ -0,0 +1,61 @@ +from wxPython.wx import * +from wxPython.lib import vtk + +#--------------------------------------------------------------------------- +class VtkFrame(wxFrame): + """ + Simple example VTK window that contains a cone. + """ + def __init__(self, parent, id, title): + wxFrame.__init__(self, parent,id,title, size=(450, 300)) + win = vtk.wxVTKRenderWindow(self, -1) + + renWin = win.GetRenderWindow() + + ren = vtk.vtkRenderer() + renWin.AddRenderer(ren) + cone = vtk.vtkConeSource() + coneMapper = vtk.vtkPolyDataMapper() + coneMapper.SetInput(cone.GetOutput()) + coneActor = vtk.vtkActor() + coneActor.SetMapper(coneMapper) + ren.AddActor(coneActor) +#--------------------------------------------------------------------------- +wxEVT_ADD_CONE = 25015 + +def EVT_ADD_CONE(win, func): + win.Connect(-1, -1, wxEVT_ADD_CONE, func) + +class AddCone(wxPyEvent): + def __init__(self): + wxPyEvent.__init__(self) + self.SetEventType(wxEVT_ADD_CONE) + +class HiddenCatcher(wxFrame): + """ + The "catcher" frame in the second thread. + It is invisible. It's only job is to receive + Events from the main thread, and create + the appropriate windows. + """ + def __init__(self): + wxFrame.__init__(self, NULL,-1,'') + EVT_ADD_CONE(self, self.AddCone) + + def AddCone(self,evt): + add_cone() +#--------------------------------------------------------------------------- +class SecondThreadApp(wxApp): + """ + wxApp that lives in the second thread. + """ + def OnInit(self): + catcher = HiddenCatcher() + #self.SetTopWindow(catcher) + self.catcher =catcher + return true +#--------------------------------------------------------------------------- + +def add_cone(): + frame = VtkFrame(NULL, -1, "Cone") + frame.Show(true)