added scroll functionality when mouse inside dataPlot canvas
This commit is contained in:
		
							parent
							
								
									a3fbeafeac
								
							
						
					
					
						commit
						ba56bfbd25
					
				
							
								
								
									
										24
									
								
								QtPyLoT.py
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								QtPyLoT.py
									
									
									
									
									
								
							| @ -104,6 +104,7 @@ class MainWindow(QMainWindow): | ||||
| 
 | ||||
|         self.poS_id = None | ||||
|         self.ae_id = None | ||||
|         self.scroll_id = None | ||||
| 
 | ||||
|         # default colors for ref/test event | ||||
|         self._colors = { | ||||
| @ -1047,13 +1048,20 @@ class MainWindow(QMainWindow): | ||||
|             self.ae_id = self.dataPlot.mpl_connect('axes_enter_event', | ||||
|                                                    lambda event: self.tutor_user()) | ||||
| 
 | ||||
|         if not self.scroll_id: | ||||
|             self.scroll_id = self.dataPlot.mpl_connect('scroll_event', | ||||
|                                                        self.scrollPlot) | ||||
| 
 | ||||
|     def disconnectWFplotEvents(self): | ||||
|         if self.poS_id: | ||||
|             self.dataPlot.mpl_disconnect(self.poS_id) | ||||
|         if self.ae_id: | ||||
|             self.dataPlot.mpl_disconnect(self.ae_id) | ||||
|         if self.scroll_id: | ||||
|             self.dataPlot.mpl_connect(self.scroll_id) | ||||
|         self.poS_id = None | ||||
|         self.ae_id = None | ||||
|         self.scroll_id = None | ||||
| 
 | ||||
|     def finishWaveformDataPlot(self): | ||||
|         self.connectWFplotEvents() | ||||
| @ -1116,7 +1124,7 @@ class MainWindow(QMainWindow): | ||||
|         plotWidget.plotWFData(wfdata=wfst, title=title, mapping=False) | ||||
|         plotDict = plotWidget.getPlotDict() | ||||
|         pos = plotDict.keys() | ||||
|         labels = [plotDict[n][0] for n in pos] | ||||
|         labels = [plotDict[n][2]+'.'+plotDict[n][0] for n in pos] | ||||
|         plotWidget.setYTickLabels(pos, labels) | ||||
|         try: | ||||
|             plotWidget.figure.tight_layout() | ||||
| @ -1221,8 +1229,20 @@ class MainWindow(QMainWindow): | ||||
|         self.update_status('Seismic phase changed to ' | ||||
|                           '{0}'.format(self.getSeismicPhase())) | ||||
| 
 | ||||
|     def scrollPlot(self, gui_event): | ||||
|         button = gui_event.button | ||||
|         if not button == 'up' and not button == 'down': | ||||
|             return | ||||
|         vbar = self.wf_scroll_area.verticalScrollBar() | ||||
|         up_down = {'up': -60, | ||||
|                    'down': 60} | ||||
|         if vbar.maximum(): | ||||
|             vbar.setValue(vbar.value() + up_down[button])         | ||||
|          | ||||
|     def pickOnStation(self, gui_event): | ||||
| 
 | ||||
|         if not gui_event.button == 1: | ||||
|             return | ||||
|          | ||||
|         wfID = self.getWFID(gui_event) | ||||
| 
 | ||||
|         if wfID is None: return | ||||
|  | ||||
| @ -1 +1 @@ | ||||
| 2a05-dirty | ||||
| a3fbe-dirty | ||||
|  | ||||
| @ -439,6 +439,7 @@ class WaveformWidget(FigureCanvas): | ||||
|         nmax = 0 | ||||
|         for n, trace in enumerate(wfdata): | ||||
|             channel = trace.stats.channel | ||||
|             network = trace.stats.network | ||||
|             station = trace.stats.station | ||||
|             if mapping: | ||||
|                 comp = channel[-1] | ||||
| @ -458,7 +459,7 @@ class WaveformWidget(FigureCanvas): | ||||
|                    for level in noiselevel: | ||||
|                        self.getAxes().plot([time_ax[0], time_ax[-1]], | ||||
|                                            [level, level], '--k') | ||||
|                 self.setPlotDict(n, (station, channel)) | ||||
|                 self.setPlotDict(n, (station, channel, network)) | ||||
|         xlabel = 'seconds since {0}'.format(wfstart) | ||||
|         ylabel = '' | ||||
|         self.updateWidget(xlabel, ylabel, title) | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user