# -*- coding: utf-8 -*- # 3.0 # ############################################################### #### Copyright ©2013 by Marek Kocinski. All rights reserved ### ############################################################### import wx import numpy as np from scipy import misc from matplotlib.figure import Figure from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigCanvas class imageShow(wx.Frame): def __init__(self,parent): self.img = misc.ascent() wx.Frame.__init__(self, parent, title="Lena", size=(wx.GetClientDisplayRect()[2], wx.GetClientDisplayRect()[3]) ) self.CreatePanel() self.DrawFigure() def CreatePanel(self): self.fig = Figure() self.fig.subplots_adjust(left=0.01, right=0.99, top=0.99, bottom=0.01) self.canvas = FigCanvas(self, -1, self.fig) self.axes = self.fig.add_subplot(111) self.axes.get_xaxis().set_visible(False) self.axes.get_yaxis().set_visible(False) ### PANEL 1 ### self.panel1 = wx.Panel(self,-1) self.panel1.SetBackgroundColour('Orange') ### panel 1 - widgets self.bt1 = wx.Button(self.panel1, -1, "bt 1 - To Do") self.bt2 = wx.Button(self.panel1, -1, "bt 2 - To Do") self.sl1 = wx.Slider(self.panel1, -1, value=125, minValue=0, maxValue=255) self.sl2 = wx.Slider(self.panel1, -1, value=500, minValue=0, maxValue=1000) ### panel 1 - Bind Functions ### TO DO!!! ### panel 1 - sizers ### panel 1 - slider sizer self.panel1_slider_sizer = wx.BoxSizer(wx.VERTICAL) self.panel1_slider_sizer.Add(self.sl1, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, border=1) self.panel1_slider_sizer.Add(self.sl2, 1, wx.EXPAND | wx.ALIGN_CENTER_HORIZONTAL, border=1) ### panel 1 - main sizer self.panel1_main_sizer = wx.BoxSizer(wx.HORIZONTAL) self.panel1_main_sizer.Add(self.bt1, 1, wx.EXPAND | wx.CENTER, border=1) self.panel1_main_sizer.Add(self.bt2, 1, wx.CENTER, border=1) self.panel1_main_sizer.Add(self.panel1_slider_sizer, 1, wx.EXPAND | wx.CENTER, border=1) ### set main sizer self.panel1.SetSizer(self.panel1_main_sizer) ### PANEL 2 ### self.panel2 = wx.Panel(self,-1) self.panel2.SetBackgroundColour('Red') ### main sizer self.main_sizer = wx.BoxSizer(wx.VERTICAL) #main siezer self.main_sizer.Add(self.canvas, 2, wx.EXPAND | wx.ALL, 1) self.main_sizer.Add(self.panel1, 1, wx.EXPAND | wx.ALL, 1) self.main_sizer.Add(self.panel2, 1, wx.EXPAND | wx.ALL, 1) self.SetSizer(self.main_sizer) self.SetAutoLayout(True) self.Fit() def DrawFigure(self, minn = 0, maxx = 255): self.axes.clear() self.imshow = self.axes.imshow(self.img.clip(minn,maxx), cmap="gray") self.canvas.draw() app = wx.App(False) img = imageShow(None) img.Show() app.MainLoop()