def SetupWindow(self): self.OglFrame = OTk.Frame() self.OglFrame.pack(side='top', expand=1, fill='both') self.ogl = myOpengl(master=self.OglFrame, width=500, height=500, double=1) self.ogl.pack(side='top', expand=1, fill='both') self.ogl.distance = max(self.imageWidth + 10, self.imageHeight + 10) * 10 self.ogl.near = max(self.imageWidth + 10, self.imageHeight + 10) * 100. self.ogl.far = max(self.imageWidth + 10, self.imageHeight + 10) / 100. self.ogl.fovy = 10. self.ogl.autospin_allowed = 1 self.ogl.redraw = self.display # Control buttons for scaling self.bf = OTk.Frame() self.QuitButton = OTk.Button(self.bf, {'text': 'Quit'}) self.QuitButton.bind('<ButtonRelease-1>', sys.exit) self.QuitButton.pack(side=OTk.RIGHT) OTk.Label(self.bf, text="MIN:").pack(side=OTk.LEFT) self.minI = OTk.StringVar() try: self.minI.set(str(int(sys.argv[2]))) except: self.minI.set(str(self.edfFile.minI)) self.minIentry = OTk.Entry(self.bf, textvariable=self.minI) self.minIentry.bind('<KeyPress-Return>', self.change) self.minIentry.pack(side=OTk.LEFT) OTk.Label(self.bf, text=" MAX:").pack(side=OTk.LEFT) self.maxI = OTk.StringVar() try: top = int(sys.argv[3]) except: top = self.edfFile.minI + (self.edfFile.maxI - self.edfFile.minI) / 10. self.maxI.set(str(top)) self.maxIentry = OTk.Entry(self.bf, textvariable=self.maxI) self.maxIentry.bind('<KeyPress-Return>', self.change) self.maxIentry.pack(side=OTk.LEFT) self.Update = OTk.Button(self.bf, text="Update", command=self.change).pack(side=OTk.LEFT) OTk.Button(self.bf, text="Reset", command=self.ogl.reset).pack(side=OTk.LEFT) self.bf.pack(side=OTk.TOP, expand=0, fill=OTk.X) helpframe = OTk.Frame() OTk.Label(helpframe, text="Left mouse button to translate, Right to zoom").pack( side=OTk.BOTTOM) helpframe.pack(side=OTk.BOTTOM)
def draw_blue(self, ogl): glClearColor(0, 0, 1, 0) glClear(GL_COLOR_BUFFER_BIT) def set_blue(self): self.ogl.redraw = self.draw_blue self.ogl.tkRedraw() def draw_text(self, ogl): glClearColor(0, 0, 0.5, 0) glClear(GL_COLOR_BUFFER_BIT) if ogl.grob == -1: from logo import define_logo ogl.grob = glGenLists(1) glNewList(ogl.grob, GL_COMPILE_AND_EXECUTE) glMaterialfv(GL_FRONT, GL_DIFFUSE, [1, 0, 0, 0]) define_logo() glEndList() else: glCallList(ogl.grob) def set_text(self): self.ogl.redraw = self.draw_text self.ogl.tkRedraw() root = Tk() d = Demo(root) root.mainloop()
def __init__(self, im ): Tk.Toplevel.__init__(self) self.f = Tk.Frame(self) self.bf = Tk.Frame(self) self.max = Tk.StringVar() ; self.max.set('60000') Tk.Label(self.bf,text="Max").pack(side=Tk.LEFT) e = Tk.Entry(self.bf,textvariable=self.max) e.pack(side=Tk.LEFT) e.bind("<Enter>",self.redraw) self.min = Tk.StringVar() ; self.min.set('0') Tk.Label(self.bf,text="Min").pack(side=Tk.LEFT) e=Tk.Entry(self.bf,textvariable=self.min) e.pack(side=Tk.LEFT) e.bind("<Enter>",self.redraw) self.zoom = Tk.StringVar() ; self.zoom.set('1') Tk.Label(self.bf,text="Zoom").pack(side=Tk.LEFT) e=Tk.Entry(self.bf,textvariable=self.zoom) e.pack(side=Tk.LEFT) e.bind("<Enter>",self.redraw) self.ow = Tk.StringVar() ; self.ow.set('0') Tk.Label(self.bf,text="Ow").pack(side=Tk.LEFT) e=Tk.Entry(self.bf,textvariable=self.ow) e.pack(side=Tk.LEFT) e.bind("<Enter>",self.redraw) self.oh = Tk.StringVar() ; self.oh.set('0') Tk.Label(self.bf,text="Oh").pack(side=Tk.LEFT) e=Tk.Entry(self.bf,textvariable=self.oh) e.pack(side=Tk.LEFT) e.bind("<Enter>",self.redraw) self.f.bind("<Enter>",self.redraw) self.f.bind("<Button-1>",self.redraw) self.ogl = Tk.Opengl(self.f,width = 500, height = 500, double = 1) self.bf.pack(side=Tk.TOP) self.f.pack(fill=Tk.BOTH,expand=1) self.ogl.pack(side=Tk.TOP, fill = Tk.BOTH, expand = 1) self.volslice = im self.ogl.redraw = self.redraw self.ogl.tkTranslate = self.tkTranslate
self.ogl.tkRedraw() def draw_blue(self, ogl): glClearColor(0, 0, 1, 0) glClear(GL_COLOR_BUFFER_BIT) def set_blue(self): self.ogl.redraw = self.draw_blue self.ogl.tkRedraw() def draw_text(self, ogl): glClearColor(0, 0, 0.5, 0) glClear(GL_COLOR_BUFFER_BIT) if ogl.grob == -1: from logo import define_logo ogl.grob = glGenLists(1); glNewList(ogl.grob, GL_COMPILE_AND_EXECUTE); glMaterialfv(GL_FRONT, GL_DIFFUSE, [1, 0, 0, 0]) define_logo() glEndList() else: glCallList(ogl.grob) def set_text(self): self.ogl.redraw = self.draw_text self.ogl.tkRedraw() root = Tk() d = Demo(root) root.mainloop()