added map_projection plot
This commit is contained in:
parent
fd70ef2251
commit
80577dcfc7
162
QtPyLoT.py
162
QtPyLoT.py
@ -30,13 +30,14 @@ import matplotlib
|
|||||||
matplotlib.use('Qt4Agg')
|
matplotlib.use('Qt4Agg')
|
||||||
matplotlib.rcParams['backend.qt4'] = 'PySide'
|
matplotlib.rcParams['backend.qt4'] = 'PySide'
|
||||||
|
|
||||||
|
from PySide import QtGui, QtCore
|
||||||
from PySide.QtCore import QCoreApplication, QSettings, Signal, QFile, \
|
from PySide.QtCore import QCoreApplication, QSettings, Signal, QFile, \
|
||||||
QFileInfo, Qt, QSize
|
QFileInfo, Qt, QSize
|
||||||
from PySide.QtGui import QMainWindow, QInputDialog, QIcon, QFileDialog, \
|
from PySide.QtGui import QMainWindow, QInputDialog, QIcon, QFileDialog, \
|
||||||
QWidget, QHBoxLayout, QVBoxLayout, QStyle, QKeySequence, QLabel, QFrame, QAction, \
|
QWidget, QHBoxLayout, QVBoxLayout, QStyle, QKeySequence, QLabel, QFrame, QAction, \
|
||||||
QDialog, QErrorMessage, QApplication, QPixmap, QMessageBox, QSplashScreen, \
|
QDialog, QErrorMessage, QApplication, QPixmap, QMessageBox, QSplashScreen, \
|
||||||
QActionGroup, QListWidget, QDockWidget, QLineEdit, QListView, QAbstractItemView, \
|
QActionGroup, QListWidget, QDockWidget, QLineEdit, QListView, QAbstractItemView, \
|
||||||
QTreeView, QComboBox, QTabWidget
|
QTreeView, QComboBox, QTabWidget, QPushButton, QGridLayout
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from obspy import UTCDateTime
|
from obspy import UTCDateTime
|
||||||
|
|
||||||
@ -91,12 +92,27 @@ class MainWindow(QMainWindow):
|
|||||||
self.array_map = None
|
self.array_map = None
|
||||||
self._metadata = None
|
self._metadata = None
|
||||||
|
|
||||||
|
self.poS_id = None
|
||||||
|
self.ae_id = None
|
||||||
|
|
||||||
# UI has to be set up before(!) children widgets are about to show up
|
# UI has to be set up before(!) children widgets are about to show up
|
||||||
self.createAction = createAction
|
self.createAction = createAction
|
||||||
# read settings
|
# read settings
|
||||||
settings = QSettings()
|
settings = QSettings()
|
||||||
self.recentfiles = settings.value("data/recentEvents", [])
|
self.recentfiles = settings.value("data/recentEvents", [])
|
||||||
self.dispComponent = str(settings.value("plotting/dispComponent", "Z"))
|
self.dispComponent = str(settings.value("plotting/dispComponent", "Z"))
|
||||||
|
|
||||||
|
# initialize event data
|
||||||
|
if self.recentfiles:
|
||||||
|
lastEvent = self.getLastEvent()
|
||||||
|
self.data = Data(self, lastEvent)
|
||||||
|
else:
|
||||||
|
self.data = Data(self)
|
||||||
|
self.autodata = Data(self)
|
||||||
|
|
||||||
|
self.dirty = False
|
||||||
|
|
||||||
|
# setup UI
|
||||||
self.setupUi()
|
self.setupUi()
|
||||||
|
|
||||||
if settings.value("user/FullName", None) is None:
|
if settings.value("user/FullName", None) is None:
|
||||||
@ -126,16 +142,6 @@ class MainWindow(QMainWindow):
|
|||||||
self.autopicks = {}
|
self.autopicks = {}
|
||||||
self.loc = False
|
self.loc = False
|
||||||
|
|
||||||
# initialize event data
|
|
||||||
if self.recentfiles:
|
|
||||||
lastEvent = self.getLastEvent()
|
|
||||||
self.data = Data(self, lastEvent)
|
|
||||||
else:
|
|
||||||
self.data = Data(self)
|
|
||||||
self.autodata = Data(self)
|
|
||||||
|
|
||||||
self.dirty = False
|
|
||||||
|
|
||||||
def setupUi(self):
|
def setupUi(self):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -153,10 +159,8 @@ class MainWindow(QMainWindow):
|
|||||||
xlab = self.startTime.strftime('seconds since %Y/%m/%d %H:%M:%S (%Z)')
|
xlab = self.startTime.strftime('seconds since %Y/%m/%d %H:%M:%S (%Z)')
|
||||||
|
|
||||||
_widget = QWidget()
|
_widget = QWidget()
|
||||||
_widget.setCursor(Qt.CrossCursor)
|
|
||||||
self._main_layout = QVBoxLayout()
|
self._main_layout = QVBoxLayout()
|
||||||
|
|
||||||
|
|
||||||
# add event combo box
|
# add event combo box
|
||||||
self.eventBox = QComboBox()
|
self.eventBox = QComboBox()
|
||||||
self.eventBox.setMaxVisibleItems(30)
|
self.eventBox.setMaxVisibleItems(30)
|
||||||
@ -166,25 +170,20 @@ class MainWindow(QMainWindow):
|
|||||||
self._event_layout.addWidget(self.eventBox)
|
self._event_layout.addWidget(self.eventBox)
|
||||||
self._event_layout.setStretch(1,1) #set stretch of item 1 to 1
|
self._event_layout.setStretch(1,1) #set stretch of item 1 to 1
|
||||||
self._main_layout.addLayout(self._event_layout)
|
self._main_layout.addLayout(self._event_layout)
|
||||||
self.eventBox.activated.connect(self.loadWaveformDataThread)
|
self.eventBox.activated.connect(self.refreshTabs)
|
||||||
|
|
||||||
# add tabs
|
# add tabs
|
||||||
self.tabs = QTabWidget()
|
self.tabs = QTabWidget()
|
||||||
self._main_layout.addWidget(self.tabs)
|
self._main_layout.addWidget(self.tabs)
|
||||||
|
self.tabs.currentChanged.connect(self.refreshTabs)
|
||||||
# init Map
|
|
||||||
#self.init_array_map()
|
|
||||||
|
|
||||||
# create central matplotlib figure canvas widget
|
# create central matplotlib figure canvas widget
|
||||||
plottitle = "Overview: {0} components ".format(self.getComponent())
|
plottitle = "Overview: {0} components ".format(self.getComponent())
|
||||||
self.DataPlot = WaveformWidget(parent=self, xlabel=xlab, ylabel=None,
|
self.dataPlot = WaveformWidget(parent=self, xlabel=xlab, ylabel=None,
|
||||||
title=plottitle)
|
title=plottitle)
|
||||||
self.DataPlot.mpl_connect('button_press_event',
|
self.dataPlot.setCursor(Qt.CrossCursor)
|
||||||
self.pickOnStation)
|
self.tabs.addTab(self.dataPlot, 'Waveform Plot')
|
||||||
self.DataPlot.mpl_connect('axes_enter_event',
|
self.init_array_tab()
|
||||||
lambda event: self.tutor_user())
|
|
||||||
self.tabs.addTab(self.DataPlot, 'Waveform Plot')
|
|
||||||
#self.tabs.addTab(self.array_map, 'Array Map')
|
|
||||||
|
|
||||||
|
|
||||||
quitIcon = self.style().standardIcon(QStyle.SP_MediaStop)
|
quitIcon = self.style().standardIcon(QStyle.SP_MediaStop)
|
||||||
@ -597,15 +596,27 @@ class MainWindow(QMainWindow):
|
|||||||
self.eventBox.clear()
|
self.eventBox.clear()
|
||||||
if len(self.project.eventlist) == 0:
|
if len(self.project.eventlist) == 0:
|
||||||
print('No events to init.')
|
print('No events to init.')
|
||||||
|
self.clearWaveformDataPlot()
|
||||||
return
|
return
|
||||||
self.eventBox.setEnabled(True)
|
self.eventBox.setEnabled(True)
|
||||||
for event in self.project.eventlist:
|
self.fill_eventbox(self.project.eventlist)
|
||||||
self.eventBox.addItem(event)
|
|
||||||
if new:
|
if new:
|
||||||
self.eventBox.setCurrentIndex(0)
|
self.eventBox.setCurrentIndex(0)
|
||||||
else:
|
else:
|
||||||
self.eventBox.setCurrentIndex(nitems)
|
self.eventBox.setCurrentIndex(nitems)
|
||||||
self.loadWaveformDataThread()
|
self.refreshTabs()
|
||||||
|
|
||||||
|
def fill_eventbox(self, eventlist):
|
||||||
|
model = self.eventBox.model()
|
||||||
|
for event in self.project.eventlist:
|
||||||
|
item = QtGui.QStandardItem(str(event))
|
||||||
|
# if ref: set different color e.g.
|
||||||
|
#item.setBackground(QtGui.QColor('teal'))
|
||||||
|
item.setForeground(QtGui.QColor('black'))
|
||||||
|
font = item.font()
|
||||||
|
font.setPointSize(10)
|
||||||
|
item.setFont(font)
|
||||||
|
model.appendRow(item)
|
||||||
|
|
||||||
def filename_from_action(self, action):
|
def filename_from_action(self, action):
|
||||||
if action.data() is None:
|
if action.data() is None:
|
||||||
@ -732,7 +743,7 @@ class MainWindow(QMainWindow):
|
|||||||
compare_dlg.exec_()
|
compare_dlg.exec_()
|
||||||
|
|
||||||
def getPlotWidget(self):
|
def getPlotWidget(self):
|
||||||
return self.DataPlot
|
return self.dataPlot
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def getWFID(gui_event):
|
def getWFID(gui_event):
|
||||||
@ -771,8 +782,16 @@ class MainWindow(QMainWindow):
|
|||||||
return self.saveData()
|
return self.saveData()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def refreshTabs(self):
|
||||||
|
if self.tabs.currentIndex() == 0:
|
||||||
|
if hasattr(self.project, 'eventlist'):
|
||||||
|
if len(self.project.eventlist) > 0:
|
||||||
|
self.loadWaveformDataThread()
|
||||||
|
if self.tabs.currentIndex() == 1:
|
||||||
|
self.refresh_array_map()
|
||||||
|
|
||||||
def loadWaveformDataThread(self):
|
def loadWaveformDataThread(self):
|
||||||
wfd_thread = Thread(self, self.loadWaveformData, 'Reading data input...')
|
wfd_thread = Thread(self, self.loadWaveformData, progressText='Reading data input...')
|
||||||
wfd_thread.finished.connect(self.plotWaveformDataThread)
|
wfd_thread.finished.connect(self.plotWaveformDataThread)
|
||||||
wfd_thread.start()
|
wfd_thread.start()
|
||||||
|
|
||||||
@ -787,7 +806,24 @@ class MainWindow(QMainWindow):
|
|||||||
self.data.setWFData(self.getWFFnames_from_eventlist())
|
self.data.setWFData(self.getWFFnames_from_eventlist())
|
||||||
self._stime = full_range(self.get_data().getWFData())[0]
|
self._stime = full_range(self.get_data().getWFData())[0]
|
||||||
|
|
||||||
|
def connectWFplotEvents(self):
|
||||||
|
if not self.poS_id:
|
||||||
|
self.poS_id = self.dataPlot.mpl_connect('button_press_event',
|
||||||
|
self.pickOnStation)
|
||||||
|
if not self.ae_id:
|
||||||
|
self.ae_id = self.dataPlot.mpl_connect('axes_enter_event',
|
||||||
|
lambda event: self.tutor_user())
|
||||||
|
|
||||||
|
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)
|
||||||
|
self.poS_id = None
|
||||||
|
self.ae_id = None
|
||||||
|
|
||||||
def finishWaveformDataPlot(self):
|
def finishWaveformDataPlot(self):
|
||||||
|
self.connectWFplotEvents()
|
||||||
self.auto_pick.setEnabled(True)
|
self.auto_pick.setEnabled(True)
|
||||||
self.z_action.setEnabled(True)
|
self.z_action.setEnabled(True)
|
||||||
self.e_action.setEnabled(True)
|
self.e_action.setEnabled(True)
|
||||||
@ -798,8 +834,21 @@ class MainWindow(QMainWindow):
|
|||||||
self.saveEventAction.setEnabled(True)
|
self.saveEventAction.setEnabled(True)
|
||||||
self.draw()
|
self.draw()
|
||||||
|
|
||||||
|
def clearWaveformDataPlot(self):
|
||||||
|
self.disconnectWFplotEvents()
|
||||||
|
self.dataPlot.getAxes().cla()
|
||||||
|
self.auto_pick.setEnabled(False)
|
||||||
|
self.z_action.setEnabled(False)
|
||||||
|
self.e_action.setEnabled(False)
|
||||||
|
self.n_action.setEnabled(False)
|
||||||
|
self.openmanualpicksaction.setEnabled(False)
|
||||||
|
self.openautopicksaction.setEnabled(False)
|
||||||
|
self.loadpilotevent.setEnabled(False)
|
||||||
|
self.saveEventAction.setEnabled(False)
|
||||||
|
self.draw()
|
||||||
|
|
||||||
def plotWaveformDataThread(self):
|
def plotWaveformDataThread(self):
|
||||||
wfp_thread = Thread(self, self.plotWaveformData, 'Plotting waveform data...')
|
wfp_thread = Thread(self, self.plotWaveformData, progressText='Plotting waveform data...')
|
||||||
wfp_thread.finished.connect(self.finishWaveformDataPlot)
|
wfp_thread.finished.connect(self.finishWaveformDataPlot)
|
||||||
wfp_thread.start()
|
wfp_thread.start()
|
||||||
|
|
||||||
@ -1130,21 +1179,49 @@ class MainWindow(QMainWindow):
|
|||||||
self.get_data().applyEVTData(lt.read_location(locpath), type='event')
|
self.get_data().applyEVTData(lt.read_location(locpath), type='event')
|
||||||
self.get_data().applyEVTData(self.calc_magnitude(), type='event')
|
self.get_data().applyEVTData(self.calc_magnitude(), type='event')
|
||||||
|
|
||||||
|
def init_array_tab(self):
|
||||||
|
widget = QWidget(self)
|
||||||
|
grid_layout = QGridLayout()
|
||||||
|
grid_layout.setColumnStretch(0, 1)
|
||||||
|
grid_layout.setColumnStretch(2, 1)
|
||||||
|
grid_layout.setRowStretch(0, 1)
|
||||||
|
grid_layout.setRowStretch(3, 1)
|
||||||
|
|
||||||
|
label = QLabel('No inventory set...')
|
||||||
|
new_inv_button = QPushButton('Set &inventory file')
|
||||||
|
new_inv_button.clicked.connect(self.get_metadata)
|
||||||
|
|
||||||
|
grid_layout.addWidget(label, 1, 1)
|
||||||
|
grid_layout.addWidget(new_inv_button, 2, 1)
|
||||||
|
|
||||||
|
widget.setLayout(grid_layout)
|
||||||
|
self.tabs.addTab(widget, 'Array Maps')
|
||||||
|
|
||||||
def init_array_map(self):
|
def init_array_map(self):
|
||||||
if not self.array_map:
|
if not self.array_map:
|
||||||
self.get_metadata()
|
self.get_metadata()
|
||||||
if not self.metadata:
|
if not self.metadata:
|
||||||
return
|
return
|
||||||
self.array_map = map_projection(self)
|
self.array_map = map_projection(self)
|
||||||
|
self.tabs.removeTab(1)
|
||||||
|
self.tabs.addTab(self.array_map, 'Array Map')
|
||||||
|
self.tabs.setCurrentIndex(1)
|
||||||
|
|
||||||
def show_array_map(self, container=None):
|
def refresh_array_map(self):
|
||||||
if not self.array_map:
|
if not self.array_map:
|
||||||
print('No array map found. Init array map first!')
|
|
||||||
return
|
return
|
||||||
if self.container:
|
# refresh with new picks here!!!
|
||||||
container.addWidget(self.array_map)
|
|
||||||
self.array_map.show()
|
self.array_map.show()
|
||||||
|
|
||||||
|
def read_metadata_thread(self, fninv):
|
||||||
|
self.rm_thread = Thread(self, read_metadata, arg=fninv, progressText='Reading metadata...')
|
||||||
|
self.rm_thread.finished.connect(self.set_metadata)
|
||||||
|
self.rm_thread.start()
|
||||||
|
|
||||||
|
def set_metadata(self):
|
||||||
|
self.metadata = self.rm_thread.data
|
||||||
|
self.init_array_map()
|
||||||
|
|
||||||
def get_metadata(self):
|
def get_metadata(self):
|
||||||
def set_inv(settings):
|
def set_inv(settings):
|
||||||
fninv, _ = QFileDialog.getOpenFileName(self, self.tr(
|
fninv, _ = QFileDialog.getOpenFileName(self, self.tr(
|
||||||
@ -1160,7 +1237,7 @@ class MainWindow(QMainWindow):
|
|||||||
if ans == QMessageBox.Yes:
|
if ans == QMessageBox.Yes:
|
||||||
settings.setValue("inventoryFile", fninv)
|
settings.setValue("inventoryFile", fninv)
|
||||||
settings.sync()
|
settings.sync()
|
||||||
self.metadata = read_metadata(fninv)
|
self.read_metadata_thread(fninv)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
settings = QSettings()
|
settings = QSettings()
|
||||||
@ -1179,7 +1256,7 @@ class MainWindow(QMainWindow):
|
|||||||
if not set_inv(settings):
|
if not set_inv(settings):
|
||||||
return None
|
return None
|
||||||
else:
|
else:
|
||||||
self.metadata = read_metadata(fninv)
|
self.read_metadata_thread(fninv)
|
||||||
|
|
||||||
def calc_magnitude(self, type='ML'):
|
def calc_magnitude(self, type='ML'):
|
||||||
self.get_metadata()
|
self.get_metadata()
|
||||||
@ -1271,6 +1348,7 @@ class MainWindow(QMainWindow):
|
|||||||
filename = fnm[0] + '.plp'
|
filename = fnm[0] + '.plp'
|
||||||
if not exists:
|
if not exists:
|
||||||
self.project = Project()
|
self.project = Project()
|
||||||
|
self.init_events(new=True)
|
||||||
self.project.save(filename)
|
self.project.save(filename)
|
||||||
|
|
||||||
def loadProject(self):
|
def loadProject(self):
|
||||||
@ -1393,8 +1471,16 @@ class event(object):
|
|||||||
'''
|
'''
|
||||||
Pickable class containing information on a single event.
|
Pickable class containing information on a single event.
|
||||||
'''
|
'''
|
||||||
def __init__(self):
|
def __init__(self, eventPath):
|
||||||
self.eventID = None
|
self.eventPath = eventPath
|
||||||
|
self.autopicks = None
|
||||||
|
self.picks = None
|
||||||
|
|
||||||
|
def addPicks(self, picks):
|
||||||
|
self.picks = picks
|
||||||
|
|
||||||
|
def addAutopicks(self, autopicks):
|
||||||
|
self.autopicks = autopicks
|
||||||
|
|
||||||
|
|
||||||
class getExistingDirectories(QFileDialog):
|
class getExistingDirectories(QFileDialog):
|
||||||
|
@ -1 +1 @@
|
|||||||
6287-dirty
|
fd70-dirty
|
||||||
|
@ -63,7 +63,7 @@ class map_projection(QtGui.QWidget):
|
|||||||
print('Could not generate Plot for station {st}.\n{er}'.format(st=station, er=e))
|
print('Could not generate Plot for station {st}.\n{er}'.format(st=station, er=e))
|
||||||
|
|
||||||
def connectSignals(self):
|
def connectSignals(self):
|
||||||
self.combobox.currentIndexChanged.connect(self.refresh_drawings)
|
self.comboBox_phase.currentIndexChanged.connect(self.refresh_drawings)
|
||||||
|
|
||||||
def init_graphics(self):
|
def init_graphics(self):
|
||||||
self.main_box = QtGui.QVBoxLayout()
|
self.main_box = QtGui.QVBoxLayout()
|
||||||
@ -72,11 +72,11 @@ class map_projection(QtGui.QWidget):
|
|||||||
self.top_row = QtGui.QHBoxLayout()
|
self.top_row = QtGui.QHBoxLayout()
|
||||||
self.main_box.addLayout(self.top_row)
|
self.main_box.addLayout(self.top_row)
|
||||||
|
|
||||||
self.combobox = QtGui.QComboBox()
|
self.comboBox_phase = QtGui.QComboBox()
|
||||||
self.combobox.insertItem(0, 'P')
|
self.comboBox_phase.insertItem(0, 'P')
|
||||||
self.combobox.insertItem(1, 'S')
|
self.comboBox_phase.insertItem(1, 'S')
|
||||||
self.top_row.addWidget(QtGui.QLabel('Select a phase: '))
|
self.top_row.addWidget(QtGui.QLabel('Select a phase: '))
|
||||||
self.top_row.addWidget(self.combobox)
|
self.top_row.addWidget(self.comboBox_phase)
|
||||||
|
|
||||||
if not self.figure:
|
if not self.figure:
|
||||||
fig = plt.figure()
|
fig = plt.figure()
|
||||||
@ -108,7 +108,7 @@ class map_projection(QtGui.QWidget):
|
|||||||
self.lon = lon
|
self.lon = lon
|
||||||
|
|
||||||
def init_picks(self):
|
def init_picks(self):
|
||||||
phase = self.combobox.currentText()
|
phase = self.comboBox_phase.currentText()
|
||||||
def get_picks(station_names):
|
def get_picks(station_names):
|
||||||
picks=[]
|
picks=[]
|
||||||
for station in station_names:
|
for station in station_names:
|
||||||
@ -240,6 +240,9 @@ class map_projection(QtGui.QWidget):
|
|||||||
if self.picked:
|
if self.picked:
|
||||||
self.scatter_picked_stations()
|
self.scatter_picked_stations()
|
||||||
self.cbar = self.add_cbar(label='Time relative to first onset [s]')
|
self.cbar = self.add_cbar(label='Time relative to first onset [s]')
|
||||||
|
self.comboBox_phase.setEnabled(True)
|
||||||
|
else:
|
||||||
|
self.comboBox_phase.setEnabled(False)
|
||||||
self.annotate_ax()
|
self.annotate_ax()
|
||||||
self.canvas.draw()
|
self.canvas.draw()
|
||||||
|
|
||||||
|
@ -39,16 +39,20 @@ class AutoPickThread(QThread):
|
|||||||
|
|
||||||
|
|
||||||
class Thread(QThread):
|
class Thread(QThread):
|
||||||
def __init__(self, parent, func, progressText = None):
|
def __init__(self, parent, func, arg=None, progressText=None):
|
||||||
QThread.__init__(self, parent)
|
QThread.__init__(self, parent)
|
||||||
self.func = func
|
self.func = func
|
||||||
|
self.arg = arg
|
||||||
self.progressText = progressText
|
self.progressText = progressText
|
||||||
self.pbdlg = None
|
self.pbdlg = None
|
||||||
self.finished.connect(self.hideProgressbar)
|
self.finished.connect(self.hideProgressbar)
|
||||||
self.showProgressbar()
|
self.showProgressbar()
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
self.func()
|
if self.arg:
|
||||||
|
self.data = self.func(self.arg)
|
||||||
|
else:
|
||||||
|
self.data = self.func()
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
self.wait()
|
self.wait()
|
||||||
@ -63,8 +67,7 @@ class Thread(QThread):
|
|||||||
vl.addWidget(pb)
|
vl.addWidget(pb)
|
||||||
vl.addWidget(QLabel(self.progressText))
|
vl.addWidget(QLabel(self.progressText))
|
||||||
self.pbdlg.setLayout(vl)
|
self.pbdlg.setLayout(vl)
|
||||||
self.pbdlg.show()
|
self.pbdlg.setWindowFlags(Qt.SplashScreen)
|
||||||
self.pbdlg.setWindowFlags(Qt.FramelessWindowHint)
|
|
||||||
self.pbdlg.show()
|
self.pbdlg.show()
|
||||||
|
|
||||||
def hideProgressbar(self):
|
def hideProgressbar(self):
|
||||||
|
@ -397,7 +397,7 @@ class WaveformWidget(FigureCanvas):
|
|||||||
self.setParent(parent)
|
self.setParent(parent)
|
||||||
self.figure = Figure()
|
self.figure = Figure()
|
||||||
self.figure.set_facecolor((.92, .92, .92))
|
self.figure.set_facecolor((.92, .92, .92))
|
||||||
# attribute plotdict is an dictionary connecting position and a name
|
# attribute plotdict is a dictionary connecting position and a name
|
||||||
self.plotdict = dict()
|
self.plotdict = dict()
|
||||||
# create axes
|
# create axes
|
||||||
self.axes = self.figure.add_subplot(111)
|
self.axes = self.figure.add_subplot(111)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user