def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setWindowTitle('Simple FFT Analyzer') self.resize(*self.__default_window_size) self.main_frame = QtGui.QWidget() plot_widget = Qwt.QwtPlot(self) plot_widget.setCanvasBackground(QtCore.Qt.white) curve = Qwt.QwtPlotCurve('SimpleFFT data') pen = QtGui.QPen(QtCore.Qt.red) pen.setWidth(2) curve.setPen(pen) curve.setData(np.arange(100), np.arange(100)) curve.attach(plot_widget) self.button_widget = QtGui.QPushButton() self.button_widget.setText('start') self.button_widget.clicked.connect(self.onClick) self.analyzer_state = self.__WAIT self.power_spectrum_widget = PowerSpectrumScope() tab_widget = QtGui.QTabWidget() tab_widget.addTab(self.power_spectrum_widget, 'Power') tab_widget.addTab(plot_widget, 'Phase difference') layout = QtGui.QVBoxLayout() layout.addWidget(tab_widget) #layout.addWidget(plot_widget) layout.addWidget(self.button_widget) self.file_menu = self.menuBar().addMenu('&File') self.file_menu.addAction('Open...', self.openFile) self.stateus = self.statusBar().showMessage('hoge hoge hoge') self.main_frame.setLayout(layout) self.setCentralWidget(self.main_frame) self.update_ui() self.on_show()
class MainWindow(QtGui.QMainWindow): __default_window_size = (600, 400) __WAIT = 'wait' __PROCESS = 'process' def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setWindowTitle('Simple FFT Analyzer') self.resize(*self.__default_window_size) self.main_frame = QtGui.QWidget() plot_widget = Qwt.QwtPlot(self) plot_widget.setCanvasBackground(QtCore.Qt.white) curve = Qwt.QwtPlotCurve('SimpleFFT data') pen = QtGui.QPen(QtCore.Qt.red) pen.setWidth(2) curve.setPen(pen) curve.setData(np.arange(100), np.arange(100)) curve.attach(plot_widget) self.button_widget = QtGui.QPushButton() self.button_widget.setText('start') self.button_widget.clicked.connect(self.onClick) self.analyzer_state = self.__WAIT self.power_spectrum_widget = PowerSpectrumScope() tab_widget = QtGui.QTabWidget() tab_widget.addTab(self.power_spectrum_widget, 'Power') tab_widget.addTab(plot_widget, 'Phase difference') layout = QtGui.QVBoxLayout() layout.addWidget(tab_widget) #layout.addWidget(plot_widget) layout.addWidget(self.button_widget) self.file_menu = self.menuBar().addMenu('&File') self.file_menu.addAction('Open...', self.openFile) self.stateus = self.statusBar().showMessage('hoge hoge hoge') self.main_frame.setLayout(layout) self.setCentralWidget(self.main_frame) self.update_ui() self.on_show() def update_ui(self): pass def on_show(self): pass def onClick(self): print('click') if self.analyzer_state == self.__WAIT: try: self.power_spectrum_widget.startPlot() except Exception as err: print(err) return self.button_widget.setText('stop') self.analyzer_state = self.__PROCESS elif self.analyzer_state == self.__PROCESS: try: self.power_spectrum_widget.stopPlot() except Exception as err: print(err) return self.button_widget.setText('start') self.analyzer_state = self.__WAIT def openFile(self): fn = QtGui.QFileDialog.getOpenFileName(self, 'Open file', '') print(fn) fn = str(fn) from os.path import splitext if splitext(fn)[1] != '.wav': print('not wav') fs, data = wavefile.read(fn) self.power_spectrum_widget.fs = fs self.power_spectrum_widget.data = data.astype(np.float32)/(2**15) self.power_spectrum_widget.cur_idx = 0 self.power_spectrum_widget.fft_analyzer = FFTAnalyzer(fs=fs) self.power_spectrum_widget.startPlot() self.analyzer_state = self.__PROCESS self.button_widget.setText('stop')