Changeset 2451 for trunk/python/asaplotgui_gtk.py
- Timestamp:
- 03/30/12 19:58:59 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/python/asaplotgui_gtk.py
r1819 r2451 12 12 matplotlib.rcParams['toolbar'] = 'toolbar2' 13 13 from matplotlib.backends.backend_gtk import NavigationToolbar2GTK as NavigationToolbar 14 from matplotlib import _pylab_helpers 14 15 15 16 class asaplotgui(asaplotbase): … … 29 30 30 31 asaplotbase.__init__(self, **v) 32 matplotlib.rcParams['interactive'] = True 31 33 matplotlib.interactive = True 34 35 _pylab_helpers.Gcf.destroy(0) 32 36 self.canvas = FigureCanvas(self.figure) 33 37 # Simply instantiating this is enough to get a working toolbar. … … 39 43 self.window.connect("destroy", dest_callback ) 40 44 self.window.set_title('ASAP Plotter - GTK') 41 self.events = {'button_press':None,42 'button_release':None,43 'motion_notify':None}44 45 self.buffering = buffering46 matplotlib.rcParams['interactive'] = True47 45 #self.canvas.set_size_request(800,600) 46 _pylab_helpers.Gcf.figs[self.figmgr.num] = self.figmgr 48 47 49 48 #self.canvas.show() … … 54 53 window stack. 55 54 """ 55 if self.is_dead: 56 raise RuntimeError( "No plotter to show. Not yet plotted or plotter is closed." ) 56 57 self.window.deiconify() 57 58 #self.window.lift() 58 59 # def position(self):60 # """61 # Use the mouse to get a position from a graph.62 # """63 64 # def position_disable(event):65 # self.register('button_press', None)66 # print '%.4f, %.4f' % (event.xdata, event.ydata)67 68 # print 'Press any mouse button...'69 # self.register('button_press', position_disable)70 71 59 72 60 def quit(self): … … 74 62 Destroy the ASAPlot graphics window. 75 63 """ 76 self.window.destroy() 77 78 79 # def region(self): 80 # """ 81 # Use the mouse to get a rectangular region from a plot. 82 83 # The return value is [x0, y0, x1, y1] in world coordinates. 84 # """ 85 86 # def region_start(event): 87 # height = self.canvas.figure.bbox.height() 88 # self.rect = {'fig': None, 'height': height, 89 # 'x': event.x, 'y': height - event.y, 90 # 'world': [event.xdata, event.ydata, 91 # event.xdata, event.ydata]} 92 # self.register('button_press', None) 93 # self.register('motion_notify', region_draw) 94 # self.register('button_release', region_disable) 95 96 # def region_draw(event): 97 # self.canvas._tkcanvas.delete(self.rect['fig']) 98 # self.rect['fig'] = self.canvas._tkcanvas.create_rectangle( 99 # self.rect['x'], self.rect['y'], 100 # event.x, self.rect['height'] - event.y) 101 102 # def region_disable(event): 103 # self.register('motion_notify', None) 104 # self.register('button_release', None) 105 106 # self.canvas._tkcanvas.delete(self.rect['fig']) 107 108 # self.rect['world'][2:4] = [event.xdata, event.ydata] 109 # print '(%.2f, %.2f) (%.2f, %.2f)' % (self.rect['world'][0], 110 # self.rect['world'][1], self.rect['world'][2], 111 # self.rect['world'][3]) 112 113 # self.register('button_press', region_start) 114 115 # # This has to be modified to block and return the result (currently 116 # # printed by region_disable) when that becomes possible in matplotlib. 117 118 # return [0.0, 0.0, 0.0, 0.0] 119 120 121 # def register(self, type=None, func=None): 122 # """ 123 # Register, reregister, or deregister events of type 'button_press', 124 # 'button_release', or 'motion_notify'. 125 126 # The specified callback function should have the following signature: 127 128 # def func(event) 129 130 # where event is an MplEvent instance containing the following data: 131 132 # name # Event name. 133 # canvas # FigureCanvas instance generating the event. 134 # x = None # x position - pixels from left of canvas. 135 # y = None # y position - pixels from bottom of canvas. 136 # button = None # Button pressed: None, 1, 2, 3. 137 # key = None # Key pressed: None, chr(range(255)), shift, 138 # win, or control 139 # inaxes = None # Axes instance if cursor within axes. 140 # xdata = None # x world coordinate. 141 # ydata = None # y world coordinate. 142 143 # For example: 144 145 # def mouse_move(event): 146 # print event.xdata, event.ydata 147 148 # a = asaplot() 149 # a.register('motion_notify', mouse_move) 150 151 # If func is None, the event is deregistered. 152 153 # Note that in TkAgg keyboard button presses don't generate an event. 154 # """ 155 156 # if not self.events.has_key(type): return 157 158 # if func is None: 159 # if self.events[type] is not None: 160 # # It's not clear that this does anything. 161 # self.canvas.mpl_disconnect(self.events[type]) 162 # self.events[type] = None 163 164 # # It seems to be necessary to return events to the toolbar. 165 # if type == 'motion_notify': 166 # self.canvas.mpl_connect(type + '_event', 167 # self.figmgr.toolbar.mouse_move) 168 # elif type == 'button_press': 169 # self.canvas.mpl_connect(type + '_event', 170 # self.figmgr.toolbar.press) 171 # elif type == 'button_release': 172 # self.canvas.mpl_connect(type + '_event', 173 # self.figmgr.toolbar.release) 174 175 # else: 176 # self.events[type] = self.canvas.mpl_connect(type + '_event', func) 177 64 self.is_dead = True 65 if not self.figmgr: 66 return 67 #self.window.destroy() 68 _pylab_helpers.Gcf.destroy(self.figmgr.num) 69 del self.window, self.canvas, self.figmgr 70 self.window = None 71 self.canvas = None 72 self.figmgr = None 178 73 179 74 def show(self, hardrefresh=True): … … 181 76 Show graphics dependent on the current buffering state. 182 77 """ 78 if self.is_dead: 79 raise RuntimeError( "No plotter to show (not yet plotted or closed)." ) 183 80 if not self.buffering: 184 81 if hardrefresh: … … 192 89 Clear the figure. 193 90 """ 91 if not self.window: 92 asaplog.push( "No plotter window to terminate." ) 93 asaplog.post( "WARN" ) 94 return 194 95 self.window.destroy() 195 96 … … 198 99 Hide the ASAPlot graphics window. 199 100 """ 101 if not self.window: 102 asaplog.push( "No plotter window to unmap." ) 103 asaplog.post( "WARN" ) 104 return 200 105 self.window.wm_withdraw()
Note: See TracChangeset
for help on using the changeset viewer.