class Layout(Display): def __init__(self, regions): Display.__init__(self, regions) self.root.title("ViewPY: A Data Viewing Program") self.menubar = MenuBar(self.root) self.mainframe = ttk.Frame(self.root, padding='5 5 5 5') self.mainframe.pack() self.canvas = Canvas(self.mainframe, width=800, height=800, background='white') self.draw = CanvasDrawing(self.canvas, self.regions) def set_layout(self): self.menubar.add_all_menus() self.menubar.build_popupmenu(self.canvas) self.draw.setup() self.canvas.grid(column=0, row=0, rowspan=8, sticky=(E, W, N, S)) close = ttk.Button(self.mainframe, text='Quit', command=self.close_window) scale = ttk.Button(self.mainframe, text='Set color scale', command=self.color_scaler) vict = ttk.Label(self.mainframe, text='You did it') close.grid(column=1, row=0, sticky=(E, W)) scale.grid(column=1, row=1, sticky=(E, W)) vict.grid(column=1, row=2, sticky=(E, W)) self.root.mainloop() def color_scaler(self): top = Toplevel(self.root) cs = ColorScaler(top, self.regions, self.draw) cs.main() def close_window(self): self.root.destroy() def save(self): # This is all just untested code at the moment ps = self.canvas.postscript(colormode='color') img = Image.open(io.BytesIO(ps.encode('utf-8'))) img.save("test.jpg")