[add] pyqtgraph now part of Settings object; if installed will be used by default but can be deactivated
This commit is contained in:
		
							parent
							
								
									b061c81b2c
								
							
						
					
					
						commit
						8e839df718
					
				
							
								
								
									
										51
									
								
								QtPyLoT.py
									
									
									
									
									
								
							
							
						
						
									
										51
									
								
								QtPyLoT.py
									
									
									
									
									
								
							| @ -45,6 +45,7 @@ from obspy import UTCDateTime | |||||||
| try: | try: | ||||||
|     import pyqtgraph as pg |     import pyqtgraph as pg | ||||||
| except: | except: | ||||||
|  |     print('QtPyLoT: Could not import pyqtgraph.') | ||||||
|     pg = None |     pg = None | ||||||
| 
 | 
 | ||||||
| try: | try: | ||||||
| @ -144,9 +145,6 @@ class MainWindow(QMainWindow): | |||||||
| 
 | 
 | ||||||
|         self.dirty = False |         self.dirty = False | ||||||
|          |          | ||||||
|         # setup UI |  | ||||||
|         self.setupUi() |  | ||||||
| 
 |  | ||||||
|         if settings.value("user/FullName", None) is None: |         if settings.value("user/FullName", None) is None: | ||||||
|             fulluser = QInputDialog.getText(self, "Enter Name:", "Full name") |             fulluser = QInputDialog.getText(self, "Enter Name:", "Full name") | ||||||
|             settings.setValue("user/FullName", fulluser) |             settings.setValue("user/FullName", fulluser) | ||||||
| @ -170,6 +168,9 @@ class MainWindow(QMainWindow): | |||||||
|             settings.setValue('compclass', SetChannelComponents()) |             settings.setValue('compclass', SetChannelComponents()) | ||||||
|         settings.sync() |         settings.sync() | ||||||
| 
 | 
 | ||||||
|  |         # setup UI | ||||||
|  |         self.setupUi() | ||||||
|  | 
 | ||||||
|         self.filteroptions = {} |         self.filteroptions = {} | ||||||
|         self.pickDlgs = {} |         self.pickDlgs = {} | ||||||
|         self.picks = {} |         self.picks = {} | ||||||
| @ -189,8 +190,6 @@ class MainWindow(QMainWindow): | |||||||
|         self.setWindowTitle("PyLoT - do seismic processing the python way") |         self.setWindowTitle("PyLoT - do seismic processing the python way") | ||||||
|         self.setWindowIcon(pylot_icon) |         self.setWindowIcon(pylot_icon) | ||||||
| 
 | 
 | ||||||
|         xlab = self.startTime.strftime('seconds since %Y/%m/%d %H:%M:%S (%Z)') |  | ||||||
| 
 |  | ||||||
|         _widget = QWidget() |         _widget = QWidget() | ||||||
|         self._main_layout = QVBoxLayout() |         self._main_layout = QVBoxLayout() | ||||||
| 
 | 
 | ||||||
| @ -213,21 +212,13 @@ class MainWindow(QMainWindow): | |||||||
|         self._main_layout.addWidget(self.tabs) |         self._main_layout.addWidget(self.tabs) | ||||||
|         self.tabs.currentChanged.connect(self.refreshTabs) |         self.tabs.currentChanged.connect(self.refreshTabs) | ||||||
| 
 | 
 | ||||||
|         # create central matplotlib figure canvas widget |  | ||||||
|         plottitle = None#"Overview: {0} components ".format(self.getComponent()) |  | ||||||
|         if pg: |  | ||||||
|             self.pg = True |  | ||||||
|             self.dataPlot = WaveformWidgetPG(parent=self, xlabel=xlab, ylabel=None, |  | ||||||
|                                              title=plottitle) |  | ||||||
|         else: |  | ||||||
|             self.pg = False |  | ||||||
|             self.dataPlot = WaveformWidget(parent=self, xlabel=xlab, ylabel=None, |  | ||||||
|                                            title=plottitle) |  | ||||||
|         self.dataPlot.setCursor(Qt.CrossCursor) |  | ||||||
| 
 |  | ||||||
|         # add scroll area used in case number of traces gets too high |         # add scroll area used in case number of traces gets too high | ||||||
|         self.wf_scroll_area = QtGui.QScrollArea() |         self.wf_scroll_area = QtGui.QScrollArea() | ||||||
| 
 | 
 | ||||||
|  |         # create central matplotlib figure canvas widget | ||||||
|  |         self.pg = pg | ||||||
|  |         self.init_wfWidget() | ||||||
|  | 
 | ||||||
|         # init main widgets for main tabs |         # init main widgets for main tabs | ||||||
|         wf_tab = QtGui.QWidget() |         wf_tab = QtGui.QWidget() | ||||||
|         array_tab = QtGui.QWidget() |         array_tab = QtGui.QWidget() | ||||||
| @ -247,7 +238,6 @@ class MainWindow(QMainWindow): | |||||||
|         self.tabs.addTab(events_tab, 'Eventlist') |         self.tabs.addTab(events_tab, 'Eventlist') | ||||||
|          |          | ||||||
|         self.wf_layout.addWidget(self.wf_scroll_area) |         self.wf_layout.addWidget(self.wf_scroll_area) | ||||||
|         self.wf_scroll_area.setWidget(self.dataPlot) |  | ||||||
|         self.wf_scroll_area.setWidgetResizable(True) |         self.wf_scroll_area.setWidgetResizable(True) | ||||||
|         self.init_array_tab() |         self.init_array_tab() | ||||||
|         self.init_event_table() |         self.init_event_table() | ||||||
| @ -521,6 +511,24 @@ class MainWindow(QMainWindow): | |||||||
| 
 | 
 | ||||||
|         self.setCentralWidget(_widget) |         self.setCentralWidget(_widget) | ||||||
| 
 | 
 | ||||||
|  |     def init_wfWidget(self): | ||||||
|  |         settings = QSettings() | ||||||
|  |         xlab = self.startTime.strftime('seconds since %Y/%m/%d %H:%M:%S (%Z)') | ||||||
|  |         plottitle = None#"Overview: {0} components ".format(self.getComponent()) | ||||||
|  |         self.disconnectWFplotEvents() | ||||||
|  |         if str(settings.value('pyqtgraphic')) == 'false' or not pg: | ||||||
|  |             self.pg = False | ||||||
|  |             self.dataPlot = WaveformWidget(parent=self, xlabel=xlab, ylabel=None, | ||||||
|  |                                            title=plottitle) | ||||||
|  |         else: | ||||||
|  |             self.pg = True | ||||||
|  |             self.dataPlot = WaveformWidgetPG(parent=self, xlabel=xlab, ylabel=None, | ||||||
|  |                                              title=plottitle) | ||||||
|  |         self.dataPlot.setCursor(Qt.CrossCursor) | ||||||
|  |         self.wf_scroll_area.setWidget(self.dataPlot) | ||||||
|  |         if self.get_current_event(): | ||||||
|  |             self.plotWaveformDataThread() | ||||||
|  | 
 | ||||||
|     def init_ref_test_buttons(self): |     def init_ref_test_buttons(self): | ||||||
|         ''' |         ''' | ||||||
|         Initiate/create buttons for assigning events containing manual picks to reference or test set. |         Initiate/create buttons for assigning events containing manual picks to reference or test set. | ||||||
| @ -1662,12 +1670,12 @@ class MainWindow(QMainWindow): | |||||||
|         plotID = self.getStationID(station) |         plotID = self.getStationID(station) | ||||||
|         if plotID is None: |         if plotID is None: | ||||||
|             return |             return | ||||||
|         if pg: |         if self.pg: | ||||||
|             pw = self.getPlotWidget().plotWidget |             pw = self.getPlotWidget().plotWidget | ||||||
|         else: |         else: | ||||||
|             ax = self.getPlotWidget().axes |             ax = self.getPlotWidget().axes | ||||||
|         ylims = np.array([-.5, +.5]) + plotID |         ylims = np.array([-.5, +.5]) + plotID | ||||||
|         if pg:         |         if self.pg:         | ||||||
|             dashed = QtCore.Qt.DashLine |             dashed = QtCore.Qt.DashLine | ||||||
|             dotted = QtCore.Qt.DotLine |             dotted = QtCore.Qt.DotLine | ||||||
|             phase_col = { |             phase_col = { | ||||||
| @ -1699,7 +1707,7 @@ class MainWindow(QMainWindow): | |||||||
|             if not spe and epp and lpp: |             if not spe and epp and lpp: | ||||||
|                 spe = symmetrize_error(mpp - epp, lpp - mpp) |                 spe = symmetrize_error(mpp - epp, lpp - mpp) | ||||||
| 
 | 
 | ||||||
|             if pg: |             if self.pg: | ||||||
|                 if picktype == 'manual': |                 if picktype == 'manual': | ||||||
|                     if picks['epp'] and picks['lpp']: |                     if picks['epp'] and picks['lpp']: | ||||||
|                         pw.plot([epp, epp], ylims, |                         pw.plot([epp, epp], ylims, | ||||||
| @ -2252,6 +2260,7 @@ class MainWindow(QMainWindow): | |||||||
|             self._props = PropertiesDlg(self, infile=self.infile) |             self._props = PropertiesDlg(self, infile=self.infile) | ||||||
|          |          | ||||||
|         if self._props.exec_(): |         if self._props.exec_(): | ||||||
|  |             self.init_wfWidget() | ||||||
|             return |             return | ||||||
| 
 | 
 | ||||||
|     def helpHelp(self): |     def helpHelp(self): | ||||||
|  | |||||||
| @ -1 +1 @@ | |||||||
| d6dd-dirty | b061-dirty | ||||||
|  | |||||||
| @ -2373,6 +2373,7 @@ class PropTab(QWidget): | |||||||
| 
 | 
 | ||||||
|     def resetValues(self, infile=None): |     def resetValues(self, infile=None): | ||||||
|         return None |         return None | ||||||
|  |      | ||||||
| 
 | 
 | ||||||
| class InputsTab(PropTab): | class InputsTab(PropTab): | ||||||
|     def __init__(self, parent, infile=None): |     def __init__(self, parent, infile=None): | ||||||
| @ -2484,6 +2485,7 @@ class GraphicsTab(PropTab): | |||||||
|     def __init__(self, parent=None): |     def __init__(self, parent=None): | ||||||
|         super(GraphicsTab, self).__init__(parent) |         super(GraphicsTab, self).__init__(parent) | ||||||
|         self.init_layout() |         self.init_layout() | ||||||
|  |         self.add_pg_cb() | ||||||
|         self.add_nth_sample() |         self.add_nth_sample() | ||||||
|         self.setLayout(self.main_layout) |         self.setLayout(self.main_layout) | ||||||
|          |          | ||||||
| @ -2498,15 +2500,28 @@ class GraphicsTab(PropTab): | |||||||
|          |          | ||||||
|         self.spinbox_nth_sample = QtGui.QSpinBox() |         self.spinbox_nth_sample = QtGui.QSpinBox() | ||||||
|         label = QLabel('nth sample') |         label = QLabel('nth sample') | ||||||
|  |         label.setToolTip('Plot every nth sample (to speed up plotting)') | ||||||
|         self.spinbox_nth_sample.setMinimum(1) |         self.spinbox_nth_sample.setMinimum(1) | ||||||
|         self.spinbox_nth_sample.setMaximum(10e3) |         self.spinbox_nth_sample.setMaximum(10e3) | ||||||
|         self.spinbox_nth_sample.setValue(int(nth_sample)) |         self.spinbox_nth_sample.setValue(int(nth_sample)) | ||||||
|         label.setToolTip('Plot every nth sample (to speed up plotting)') |         self.main_layout.addWidget(label, 1, 0) | ||||||
|         self.main_layout.addWidget(label, 0, 0) |         self.main_layout.addWidget(self.spinbox_nth_sample, 1, 1) | ||||||
|         self.main_layout.addWidget(self.spinbox_nth_sample, 0, 1) |  | ||||||
| 
 | 
 | ||||||
|  |     def add_pg_cb(self): | ||||||
|  |         text = {True: 'Use pyqtgraphic library for plotting', | ||||||
|  |                 False: 'Cannot use library: pyqtgraphic not found on system'} | ||||||
|  |         label = QLabel('PyQt graphic') | ||||||
|  |         label.setToolTip(text[bool(pg)]) | ||||||
|  |         label.setEnabled(bool(pg)) | ||||||
|  |         self.checkbox_pg = QtGui.QCheckBox() | ||||||
|  |         self.checkbox_pg.setEnabled(bool(pg)) | ||||||
|  |         self.checkbox_pg.setChecked(bool(pg)) | ||||||
|  |         self.main_layout.addWidget(label, 0, 0) | ||||||
|  |         self.main_layout.addWidget(self.checkbox_pg, 0, 1) | ||||||
|  |          | ||||||
|     def getValues(self): |     def getValues(self): | ||||||
|         values = {'nth_sample': self.spinbox_nth_sample.value()} |         values = {'nth_sample': self.spinbox_nth_sample.value(), | ||||||
|  |                   'pyqtgraphic': self.checkbox_pg.isChecked()} | ||||||
|         return values |         return values | ||||||
|          |          | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user