Refactoring
This commit is contained in:
parent
6800f5bd8e
commit
625ba9d698
@ -8,14 +8,14 @@ from qspectrumanalyzer import backends
|
|||||||
from qspectrumanalyzer.version import __version__
|
from qspectrumanalyzer.version import __version__
|
||||||
from qspectrumanalyzer.data import DataStorage
|
from qspectrumanalyzer.data import DataStorage
|
||||||
from qspectrumanalyzer.plot import SpectrumPlotWidget, WaterfallPlotWidget
|
from qspectrumanalyzer.plot import SpectrumPlotWidget, WaterfallPlotWidget
|
||||||
from qspectrumanalyzer.utils import color_to_str, str_to_color, human_time
|
from qspectrumanalyzer.utils import str_to_color, human_time
|
||||||
|
|
||||||
|
from qspectrumanalyzer.settings import QSpectrumAnalyzerSettings
|
||||||
|
from qspectrumanalyzer.smoothing import QSpectrumAnalyzerSmoothing
|
||||||
|
from qspectrumanalyzer.persistence import QSpectrumAnalyzerPersistence
|
||||||
|
from qspectrumanalyzer.colors import QSpectrumAnalyzerColors
|
||||||
|
from qspectrumanalyzer.baseline import QSpectrumAnalyzerBaseline
|
||||||
|
|
||||||
from qspectrumanalyzer.ui_qspectrumanalyzer_settings import Ui_QSpectrumAnalyzerSettings
|
|
||||||
from qspectrumanalyzer.ui_qspectrumanalyzer_settings_help import Ui_QSpectrumAnalyzerSettingsHelp
|
|
||||||
from qspectrumanalyzer.ui_qspectrumanalyzer_smooth import Ui_QSpectrumAnalyzerSmooth
|
|
||||||
from qspectrumanalyzer.ui_qspectrumanalyzer_persistence import Ui_QSpectrumAnalyzerPersistence
|
|
||||||
from qspectrumanalyzer.ui_qspectrumanalyzer_baseline import Ui_QSpectrumAnalyzerBaseline
|
|
||||||
from qspectrumanalyzer.ui_qspectrumanalyzer_colors import Ui_QSpectrumAnalyzerColors
|
|
||||||
from qspectrumanalyzer.ui_qspectrumanalyzer import Ui_QSpectrumAnalyzerMainWindow
|
from qspectrumanalyzer.ui_qspectrumanalyzer import Ui_QSpectrumAnalyzerMainWindow
|
||||||
|
|
||||||
debug = False
|
debug = False
|
||||||
@ -25,244 +25,6 @@ signal.signal(signal.SIGINT, signal.SIG_DFL)
|
|||||||
signal.signal(signal.SIGTERM, signal.SIG_DFL)
|
signal.signal(signal.SIGTERM, signal.SIG_DFL)
|
||||||
|
|
||||||
|
|
||||||
class QSpectrumAnalyzerSettings(QtWidgets.QDialog, Ui_QSpectrumAnalyzerSettings):
|
|
||||||
"""QSpectrumAnalyzer settings dialog"""
|
|
||||||
def __init__(self, parent=None):
|
|
||||||
# Initialize UI
|
|
||||||
super().__init__(parent)
|
|
||||||
self.setupUi(self)
|
|
||||||
self.params_help_dialog = None
|
|
||||||
self.device_help_dialog = None
|
|
||||||
|
|
||||||
# Load settings
|
|
||||||
settings = QtCore.QSettings()
|
|
||||||
self.executableEdit.setText(settings.value("executable", "soapy_power"))
|
|
||||||
self.deviceEdit.setText(settings.value("device", ""))
|
|
||||||
self.lnbSpinBox.setValue(settings.value("lnb_lo", 0, float) / 1e6)
|
|
||||||
self.waterfallHistorySizeSpinBox.setValue(settings.value("waterfall_history_size", 100, int))
|
|
||||||
|
|
||||||
backend = settings.value("backend", "soapy_power")
|
|
||||||
try:
|
|
||||||
backend_module = getattr(backends, backend)
|
|
||||||
except AttributeError:
|
|
||||||
backend_module = backends.soapy_power
|
|
||||||
|
|
||||||
self.paramsEdit.setText(settings.value("params", backend_module.Info.additional_params))
|
|
||||||
self.deviceHelpButton.setEnabled(bool(backend_module.Info.help_device))
|
|
||||||
|
|
||||||
self.sampleRateSpinBox.setMinimum(backend_module.Info.sample_rate_min / 1e6)
|
|
||||||
self.sampleRateSpinBox.setMaximum(backend_module.Info.sample_rate_max / 1e6)
|
|
||||||
self.sampleRateSpinBox.setValue(settings.value("sample_rate", backend_module.Info.sample_rate, float) / 1e6)
|
|
||||||
|
|
||||||
self.bandwidthSpinBox.setMinimum(backend_module.Info.bandwidth_min / 1e6)
|
|
||||||
self.bandwidthSpinBox.setMaximum(backend_module.Info.bandwidth_max / 1e6)
|
|
||||||
self.bandwidthSpinBox.setValue(settings.value("bandwidth", backend_module.Info.bandwidth, float) / 1e6)
|
|
||||||
|
|
||||||
self.backendComboBox.blockSignals(True)
|
|
||||||
self.backendComboBox.clear()
|
|
||||||
for b in sorted(backends.__all__):
|
|
||||||
self.backendComboBox.addItem(b)
|
|
||||||
|
|
||||||
i = self.backendComboBox.findText(backend)
|
|
||||||
if i == -1:
|
|
||||||
self.backendComboBox.setCurrentIndex(0)
|
|
||||||
else:
|
|
||||||
self.backendComboBox.setCurrentIndex(i)
|
|
||||||
self.backendComboBox.blockSignals(False)
|
|
||||||
|
|
||||||
@QtCore.Slot()
|
|
||||||
def on_executableButton_clicked(self):
|
|
||||||
"""Open file dialog when button is clicked"""
|
|
||||||
filename = QtWidgets.QFileDialog.getOpenFileName(self, self.tr("Select executable - QSpectrumAnalyzer"))[0]
|
|
||||||
if filename:
|
|
||||||
self.executableEdit.setText(filename)
|
|
||||||
|
|
||||||
@QtCore.Slot()
|
|
||||||
def on_paramsHelpButton_clicked(self):
|
|
||||||
"""Open additional parameters help dialog when button is clicked"""
|
|
||||||
try:
|
|
||||||
backend_module = getattr(backends, self.backendComboBox.currentText())
|
|
||||||
except AttributeError:
|
|
||||||
backend_module = backends.soapy_power
|
|
||||||
|
|
||||||
self.params_help_dialog = QSpectrumAnalyzerSettingsHelp(
|
|
||||||
backend_module.Info.help_params(self.executableEdit.text()),
|
|
||||||
parent=self
|
|
||||||
)
|
|
||||||
|
|
||||||
self.params_help_dialog.show()
|
|
||||||
self.params_help_dialog.raise_()
|
|
||||||
self.params_help_dialog.activateWindow()
|
|
||||||
|
|
||||||
@QtCore.Slot()
|
|
||||||
def on_deviceHelpButton_clicked(self):
|
|
||||||
"""Open device help dialog when button is clicked"""
|
|
||||||
try:
|
|
||||||
backend_module = getattr(backends, self.backendComboBox.currentText())
|
|
||||||
except AttributeError:
|
|
||||||
backend_module = backends.soapy_power
|
|
||||||
|
|
||||||
self.device_help_dialog = QSpectrumAnalyzerSettingsHelp(
|
|
||||||
backend_module.Info.help_device(self.executableEdit.text(), self.deviceEdit.text()),
|
|
||||||
parent=self
|
|
||||||
)
|
|
||||||
|
|
||||||
self.device_help_dialog.show()
|
|
||||||
self.device_help_dialog.raise_()
|
|
||||||
self.device_help_dialog.activateWindow()
|
|
||||||
|
|
||||||
@QtCore.Slot(str)
|
|
||||||
def on_backendComboBox_currentIndexChanged(self, text):
|
|
||||||
"""Change executable when backend is changed"""
|
|
||||||
self.executableEdit.setText(text)
|
|
||||||
self.deviceEdit.setText("")
|
|
||||||
|
|
||||||
try:
|
|
||||||
backend_module = getattr(backends, text)
|
|
||||||
except AttributeError:
|
|
||||||
backend_module = backends.soapy_power
|
|
||||||
|
|
||||||
self.paramsEdit.setText(backend_module.Info.additional_params)
|
|
||||||
self.deviceHelpButton.setEnabled(bool(backend_module.Info.help_device))
|
|
||||||
self.sampleRateSpinBox.setMinimum(backend_module.Info.sample_rate_min / 1e6)
|
|
||||||
self.sampleRateSpinBox.setMaximum(backend_module.Info.sample_rate_max / 1e6)
|
|
||||||
self.sampleRateSpinBox.setValue(backend_module.Info.sample_rate / 1e6)
|
|
||||||
self.bandwidthSpinBox.setMinimum(backend_module.Info.bandwidth_min / 1e6)
|
|
||||||
self.bandwidthSpinBox.setMaximum(backend_module.Info.bandwidth_max / 1e6)
|
|
||||||
self.bandwidthSpinBox.setValue(backend_module.Info.bandwidth / 1e6)
|
|
||||||
|
|
||||||
def accept(self):
|
|
||||||
"""Save settings when dialog is accepted"""
|
|
||||||
settings = QtCore.QSettings()
|
|
||||||
settings.setValue("backend", self.backendComboBox.currentText())
|
|
||||||
settings.setValue("executable", self.executableEdit.text())
|
|
||||||
settings.setValue("params", self.paramsEdit.text())
|
|
||||||
settings.setValue("device", self.deviceEdit.text())
|
|
||||||
settings.setValue("sample_rate", self.sampleRateSpinBox.value() * 1e6)
|
|
||||||
settings.setValue("bandwidth", self.bandwidthSpinBox.value() * 1e6)
|
|
||||||
settings.setValue("lnb_lo", self.lnbSpinBox.value() * 1e6)
|
|
||||||
settings.setValue("waterfall_history_size", self.waterfallHistorySizeSpinBox.value())
|
|
||||||
QtWidgets.QDialog.accept(self)
|
|
||||||
|
|
||||||
|
|
||||||
class QSpectrumAnalyzerSettingsHelp(QtWidgets.QDialog, Ui_QSpectrumAnalyzerSettingsHelp):
|
|
||||||
"""QSpectrumAnalyzer settings help dialog"""
|
|
||||||
def __init__(self, text, parent=None):
|
|
||||||
# Initialize UI
|
|
||||||
super().__init__(parent)
|
|
||||||
self.setupUi(self)
|
|
||||||
|
|
||||||
monospace_font = QtGui.QFont('monospace')
|
|
||||||
monospace_font.setStyleHint(QtGui.QFont.Monospace)
|
|
||||||
self.helpTextEdit.setFont(monospace_font)
|
|
||||||
self.helpTextEdit.setPlainText(text)
|
|
||||||
|
|
||||||
|
|
||||||
class QSpectrumAnalyzerSmooth(QtWidgets.QDialog, Ui_QSpectrumAnalyzerSmooth):
|
|
||||||
"""QSpectrumAnalyzer spectrum smoothing dialog"""
|
|
||||||
def __init__(self, parent=None):
|
|
||||||
# Initialize UI
|
|
||||||
super().__init__(parent)
|
|
||||||
self.setupUi(self)
|
|
||||||
|
|
||||||
# Load settings
|
|
||||||
settings = QtCore.QSettings()
|
|
||||||
self.windowLengthSpinBox.setValue(settings.value("smooth_length", 11, int))
|
|
||||||
|
|
||||||
window_function = settings.value("smooth_window", "hanning")
|
|
||||||
i = self.windowFunctionComboBox.findText(window_function)
|
|
||||||
if i == -1:
|
|
||||||
self.windowFunctionComboBox.setCurrentIndex(0)
|
|
||||||
else:
|
|
||||||
self.windowFunctionComboBox.setCurrentIndex(i)
|
|
||||||
|
|
||||||
def accept(self):
|
|
||||||
"""Save settings when dialog is accepted"""
|
|
||||||
settings = QtCore.QSettings()
|
|
||||||
settings.setValue("smooth_length", self.windowLengthSpinBox.value())
|
|
||||||
settings.setValue("smooth_window", self.windowFunctionComboBox.currentText())
|
|
||||||
QtWidgets.QDialog.accept(self)
|
|
||||||
|
|
||||||
|
|
||||||
class QSpectrumAnalyzerPersistence(QtWidgets.QDialog, Ui_QSpectrumAnalyzerPersistence):
|
|
||||||
"""QSpectrumAnalyzer spectrum persistence dialog"""
|
|
||||||
def __init__(self, parent=None):
|
|
||||||
# Initialize UI
|
|
||||||
super().__init__(parent)
|
|
||||||
self.setupUi(self)
|
|
||||||
|
|
||||||
# Load settings
|
|
||||||
settings = QtCore.QSettings()
|
|
||||||
self.persistenceLengthSpinBox.setValue(settings.value("persistence_length", 5, int))
|
|
||||||
|
|
||||||
decay_function = settings.value("persistence_decay", "exponential")
|
|
||||||
i = self.decayFunctionComboBox.findText(decay_function)
|
|
||||||
if i == -1:
|
|
||||||
self.decayFunctionComboBox.setCurrentIndex(0)
|
|
||||||
else:
|
|
||||||
self.decayFunctionComboBox.setCurrentIndex(i)
|
|
||||||
|
|
||||||
def accept(self):
|
|
||||||
"""Save settings when dialog is accepted"""
|
|
||||||
settings = QtCore.QSettings()
|
|
||||||
settings.setValue("persistence_length", self.persistenceLengthSpinBox.value())
|
|
||||||
settings.setValue("persistence_decay", self.decayFunctionComboBox.currentText())
|
|
||||||
QtWidgets.QDialog.accept(self)
|
|
||||||
|
|
||||||
|
|
||||||
class QSpectrumAnalyzerColors(QtWidgets.QDialog, Ui_QSpectrumAnalyzerColors):
|
|
||||||
"""QSpectrumAnalyzer colors dialog"""
|
|
||||||
def __init__(self, parent=None):
|
|
||||||
# Initialize UI
|
|
||||||
super().__init__(parent)
|
|
||||||
self.setupUi(self)
|
|
||||||
|
|
||||||
# Load settings
|
|
||||||
settings = QtCore.QSettings()
|
|
||||||
self.mainColorButton.setColor(str_to_color(settings.value("main_color", "255, 255, 0, 255")))
|
|
||||||
self.peakHoldMaxColorButton.setColor(str_to_color(settings.value("peak_hold_max_color", "255, 0, 0, 255")))
|
|
||||||
self.peakHoldMinColorButton.setColor(str_to_color(settings.value("peak_hold_min_color", "0, 0, 255, 255")))
|
|
||||||
self.averageColorButton.setColor(str_to_color(settings.value("average_color", "0, 255, 255, 255")))
|
|
||||||
self.persistenceColorButton.setColor(str_to_color(settings.value("persistence_color", "0, 255, 0, 255")))
|
|
||||||
self.baselineColorButton.setColor(str_to_color(settings.value("baseline_color", "255, 0, 255, 255")))
|
|
||||||
|
|
||||||
def accept(self):
|
|
||||||
"""Save settings when dialog is accepted"""
|
|
||||||
settings = QtCore.QSettings()
|
|
||||||
settings.setValue("main_color", color_to_str(self.mainColorButton.color()))
|
|
||||||
settings.setValue("peak_hold_max_color", color_to_str(self.peakHoldMaxColorButton.color()))
|
|
||||||
settings.setValue("peak_hold_min_color", color_to_str(self.peakHoldMinColorButton.color()))
|
|
||||||
settings.setValue("average_color", color_to_str(self.averageColorButton.color()))
|
|
||||||
settings.setValue("persistence_color", color_to_str(self.persistenceColorButton.color()))
|
|
||||||
settings.setValue("baseline_color", color_to_str(self.baselineColorButton.color()))
|
|
||||||
QtWidgets.QDialog.accept(self)
|
|
||||||
|
|
||||||
|
|
||||||
class QSpectrumAnalyzerBaseline(QtWidgets.QDialog, Ui_QSpectrumAnalyzerBaseline):
|
|
||||||
"""QSpectrumAnalyzer baseline dialog"""
|
|
||||||
def __init__(self, parent=None):
|
|
||||||
# Initialize UI
|
|
||||||
super().__init__(parent)
|
|
||||||
self.setupUi(self)
|
|
||||||
|
|
||||||
# Load settings
|
|
||||||
settings = QtCore.QSettings()
|
|
||||||
self.baselineFileEdit.setText(settings.value("baseline_file", ""))
|
|
||||||
|
|
||||||
@QtCore.Slot()
|
|
||||||
def on_baselineFileButton_clicked(self):
|
|
||||||
"""Open file dialog when button is clicked"""
|
|
||||||
filename = QtWidgets.QFileDialog.getOpenFileName(self, self.tr("Select baseline file - QSpectrumAnalyzer"))[0]
|
|
||||||
if filename:
|
|
||||||
self.baselineFileEdit.setText(filename)
|
|
||||||
|
|
||||||
def accept(self):
|
|
||||||
"""Save settings when dialog is accepted"""
|
|
||||||
settings = QtCore.QSettings()
|
|
||||||
settings.setValue("baseline_file", self.baselineFileEdit.text())
|
|
||||||
QtWidgets.QDialog.accept(self)
|
|
||||||
|
|
||||||
|
|
||||||
class QSpectrumAnalyzerMainWindow(QtWidgets.QMainWindow, Ui_QSpectrumAnalyzerMainWindow):
|
class QSpectrumAnalyzerMainWindow(QtWidgets.QMainWindow, Ui_QSpectrumAnalyzerMainWindow):
|
||||||
"""QSpectrumAnalyzer main window"""
|
"""QSpectrumAnalyzer main window"""
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
@ -685,7 +447,7 @@ class QSpectrumAnalyzerMainWindow(QtWidgets.QMainWindow, Ui_QSpectrumAnalyzerMai
|
|||||||
|
|
||||||
@QtCore.Slot()
|
@QtCore.Slot()
|
||||||
def on_smoothButton_clicked(self):
|
def on_smoothButton_clicked(self):
|
||||||
dialog = QSpectrumAnalyzerSmooth(self)
|
dialog = QSpectrumAnalyzerSmoothing(self)
|
||||||
if dialog.exec_():
|
if dialog.exec_():
|
||||||
settings = QtCore.QSettings()
|
settings = QtCore.QSettings()
|
||||||
self.data_storage.set_smooth(
|
self.data_storage.set_smooth(
|
||||||
|
28
qspectrumanalyzer/baseline.py
Normal file
28
qspectrumanalyzer/baseline.py
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
from Qt import QtCore, QtWidgets
|
||||||
|
|
||||||
|
from qspectrumanalyzer.ui_qspectrumanalyzer_baseline import Ui_QSpectrumAnalyzerBaseline
|
||||||
|
|
||||||
|
|
||||||
|
class QSpectrumAnalyzerBaseline(QtWidgets.QDialog, Ui_QSpectrumAnalyzerBaseline):
|
||||||
|
"""QSpectrumAnalyzer baseline dialog"""
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
# Initialize UI
|
||||||
|
super().__init__(parent)
|
||||||
|
self.setupUi(self)
|
||||||
|
|
||||||
|
# Load settings
|
||||||
|
settings = QtCore.QSettings()
|
||||||
|
self.baselineFileEdit.setText(settings.value("baseline_file", ""))
|
||||||
|
|
||||||
|
@QtCore.Slot()
|
||||||
|
def on_baselineFileButton_clicked(self):
|
||||||
|
"""Open file dialog when button is clicked"""
|
||||||
|
filename = QtWidgets.QFileDialog.getOpenFileName(self, self.tr("Select baseline file - QSpectrumAnalyzer"))[0]
|
||||||
|
if filename:
|
||||||
|
self.baselineFileEdit.setText(filename)
|
||||||
|
|
||||||
|
def accept(self):
|
||||||
|
"""Save settings when dialog is accepted"""
|
||||||
|
settings = QtCore.QSettings()
|
||||||
|
settings.setValue("baseline_file", self.baselineFileEdit.text())
|
||||||
|
QtWidgets.QDialog.accept(self)
|
33
qspectrumanalyzer/colors.py
Normal file
33
qspectrumanalyzer/colors.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
from Qt import QtCore, QtWidgets
|
||||||
|
|
||||||
|
from qspectrumanalyzer.utils import color_to_str, str_to_color
|
||||||
|
|
||||||
|
from qspectrumanalyzer.ui_qspectrumanalyzer_colors import Ui_QSpectrumAnalyzerColors
|
||||||
|
|
||||||
|
|
||||||
|
class QSpectrumAnalyzerColors(QtWidgets.QDialog, Ui_QSpectrumAnalyzerColors):
|
||||||
|
"""QSpectrumAnalyzer colors dialog"""
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
# Initialize UI
|
||||||
|
super().__init__(parent)
|
||||||
|
self.setupUi(self)
|
||||||
|
|
||||||
|
# Load settings
|
||||||
|
settings = QtCore.QSettings()
|
||||||
|
self.mainColorButton.setColor(str_to_color(settings.value("main_color", "255, 255, 0, 255")))
|
||||||
|
self.peakHoldMaxColorButton.setColor(str_to_color(settings.value("peak_hold_max_color", "255, 0, 0, 255")))
|
||||||
|
self.peakHoldMinColorButton.setColor(str_to_color(settings.value("peak_hold_min_color", "0, 0, 255, 255")))
|
||||||
|
self.averageColorButton.setColor(str_to_color(settings.value("average_color", "0, 255, 255, 255")))
|
||||||
|
self.persistenceColorButton.setColor(str_to_color(settings.value("persistence_color", "0, 255, 0, 255")))
|
||||||
|
self.baselineColorButton.setColor(str_to_color(settings.value("baseline_color", "255, 0, 255, 255")))
|
||||||
|
|
||||||
|
def accept(self):
|
||||||
|
"""Save settings when dialog is accepted"""
|
||||||
|
settings = QtCore.QSettings()
|
||||||
|
settings.setValue("main_color", color_to_str(self.mainColorButton.color()))
|
||||||
|
settings.setValue("peak_hold_max_color", color_to_str(self.peakHoldMaxColorButton.color()))
|
||||||
|
settings.setValue("peak_hold_min_color", color_to_str(self.peakHoldMinColorButton.color()))
|
||||||
|
settings.setValue("average_color", color_to_str(self.averageColorButton.color()))
|
||||||
|
settings.setValue("persistence_color", color_to_str(self.persistenceColorButton.color()))
|
||||||
|
settings.setValue("baseline_color", color_to_str(self.baselineColorButton.color()))
|
||||||
|
QtWidgets.QDialog.accept(self)
|
@ -3,7 +3,7 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>QSpectrumAnalyzerBaseline</name>
|
<name>QSpectrumAnalyzerBaseline</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../__main__.py" line="255"/>
|
<location filename="../baseline.py" line="20"/>
|
||||||
<source>Select baseline file - QSpectrumAnalyzer</source>
|
<source>Select baseline file - QSpectrumAnalyzer</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -74,12 +74,12 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../__main__.py" line="730"/>
|
<location filename="../__main__.py" line="496"/>
|
||||||
<source>About - QSpectrumAnalyzer</source>
|
<source>About - QSpectrumAnalyzer</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../__main__.py" line="730"/>
|
<location filename="../__main__.py" line="496"/>
|
||||||
<source>QSpectrumAnalyzer {}</source>
|
<source>QSpectrumAnalyzer {}</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -114,12 +114,12 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../__main__.py" line="491"/>
|
<location filename="../__main__.py" line="253"/>
|
||||||
<source>Frequency hops: {}</source>
|
<source>Frequency hops: {}</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../__main__.py" line="493"/>
|
<location filename="../__main__.py" line="255"/>
|
||||||
<source>Total time: {} | Sweep time: {:.2f} s ({:.2f} FPS)</source>
|
<source>Total time: {} | Sweep time: {:.2f} s ({:.2f} FPS)</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -228,34 +228,34 @@
|
|||||||
<source>auto</source>
|
<source>auto</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<location filename="../ui_qspectrumanalyzer.py" line="320"/>
|
|
||||||
<source>&Controls</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../ui_qspectrumanalyzer.py" line="324"/>
|
|
||||||
<source>Fre&quency</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<location filename="../ui_qspectrumanalyzer.py" line="331"/>
|
|
||||||
<source>Se&ttings</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui_qspectrumanalyzer.py" line="348"/>
|
<location filename="../ui_qspectrumanalyzer.py" line="348"/>
|
||||||
<source>Subtract baseline</source>
|
<source>Subtract baseline</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui_qspectrumanalyzer.py" line="349"/>
|
<location filename="../ui_qspectrumanalyzer.py" line="346"/>
|
||||||
<source>&Levels</source>
|
<source>Baseline</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui_qspectrumanalyzer.py" line="346"/>
|
<location filename="../ui_qspectrumanalyzer.py" line="320"/>
|
||||||
<source>Baseline</source>
|
<source>Controls</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui_qspectrumanalyzer.py" line="324"/>
|
||||||
|
<source>Frequency</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui_qspectrumanalyzer.py" line="331"/>
|
||||||
|
<source>Settings</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../ui_qspectrumanalyzer.py" line="349"/>
|
||||||
|
<source>Levels</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
@ -290,7 +290,7 @@
|
|||||||
<context>
|
<context>
|
||||||
<name>QSpectrumAnalyzerSettings</name>
|
<name>QSpectrumAnalyzerSettings</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../__main__.py" line="76"/>
|
<location filename="../settings.py" line="57"/>
|
||||||
<source>Select executable - QSpectrumAnalyzer</source>
|
<source>Select executable - QSpectrumAnalyzer</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -394,44 +394,44 @@
|
|||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>QSpectrumAnalyzerSmooth</name>
|
<name>QSpectrumAnalyzerSmoothing</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui_qspectrumanalyzer_smooth.py" line="60"/>
|
<location filename="../ui_qspectrumanalyzer_smoothing.py" line="60"/>
|
||||||
<source>Smoothing - QSpectrumAnalyzer</source>
|
<source>Smoothing - QSpectrumAnalyzer</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui_qspectrumanalyzer_smooth.py" line="61"/>
|
<location filename="../ui_qspectrumanalyzer_smoothing.py" line="61"/>
|
||||||
<source>&Window function:</source>
|
<source>&Window function:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui_qspectrumanalyzer_smooth.py" line="62"/>
|
<location filename="../ui_qspectrumanalyzer_smoothing.py" line="62"/>
|
||||||
<source>rectangular</source>
|
<source>rectangular</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui_qspectrumanalyzer_smooth.py" line="63"/>
|
<location filename="../ui_qspectrumanalyzer_smoothing.py" line="63"/>
|
||||||
<source>hanning</source>
|
<source>hanning</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui_qspectrumanalyzer_smooth.py" line="64"/>
|
<location filename="../ui_qspectrumanalyzer_smoothing.py" line="64"/>
|
||||||
<source>hamming</source>
|
<source>hamming</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui_qspectrumanalyzer_smooth.py" line="65"/>
|
<location filename="../ui_qspectrumanalyzer_smoothing.py" line="65"/>
|
||||||
<source>bartlett</source>
|
<source>bartlett</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui_qspectrumanalyzer_smooth.py" line="66"/>
|
<location filename="../ui_qspectrumanalyzer_smoothing.py" line="66"/>
|
||||||
<source>blackman</source>
|
<source>blackman</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../ui_qspectrumanalyzer_smooth.py" line="67"/>
|
<location filename="../ui_qspectrumanalyzer_smoothing.py" line="67"/>
|
||||||
<source>Window len&gth:</source>
|
<source>Window len&gth:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
29
qspectrumanalyzer/persistence.py
Normal file
29
qspectrumanalyzer/persistence.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
from Qt import QtCore, QtWidgets
|
||||||
|
|
||||||
|
from qspectrumanalyzer.ui_qspectrumanalyzer_persistence import Ui_QSpectrumAnalyzerPersistence
|
||||||
|
|
||||||
|
|
||||||
|
class QSpectrumAnalyzerPersistence(QtWidgets.QDialog, Ui_QSpectrumAnalyzerPersistence):
|
||||||
|
"""QSpectrumAnalyzer spectrum persistence dialog"""
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
# Initialize UI
|
||||||
|
super().__init__(parent)
|
||||||
|
self.setupUi(self)
|
||||||
|
|
||||||
|
# Load settings
|
||||||
|
settings = QtCore.QSettings()
|
||||||
|
self.persistenceLengthSpinBox.setValue(settings.value("persistence_length", 5, int))
|
||||||
|
|
||||||
|
decay_function = settings.value("persistence_decay", "exponential")
|
||||||
|
i = self.decayFunctionComboBox.findText(decay_function)
|
||||||
|
if i == -1:
|
||||||
|
self.decayFunctionComboBox.setCurrentIndex(0)
|
||||||
|
else:
|
||||||
|
self.decayFunctionComboBox.setCurrentIndex(i)
|
||||||
|
|
||||||
|
def accept(self):
|
||||||
|
"""Save settings when dialog is accepted"""
|
||||||
|
settings = QtCore.QSettings()
|
||||||
|
settings.setValue("persistence_length", self.persistenceLengthSpinBox.value())
|
||||||
|
settings.setValue("persistence_decay", self.decayFunctionComboBox.currentText())
|
||||||
|
QtWidgets.QDialog.accept(self)
|
@ -90,7 +90,7 @@
|
|||||||
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
|
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>&Controls</string>
|
<string>Controls</string>
|
||||||
</property>
|
</property>
|
||||||
<attribute name="dockWidgetArea">
|
<attribute name="dockWidgetArea">
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
@ -151,7 +151,7 @@
|
|||||||
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
|
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Fre&quency</string>
|
<string>Frequency</string>
|
||||||
</property>
|
</property>
|
||||||
<attribute name="dockWidgetArea">
|
<attribute name="dockWidgetArea">
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
@ -311,7 +311,7 @@
|
|||||||
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
|
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Se&ttings</string>
|
<string>Settings</string>
|
||||||
</property>
|
</property>
|
||||||
<attribute name="dockWidgetArea">
|
<attribute name="dockWidgetArea">
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
@ -539,7 +539,7 @@
|
|||||||
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
|
<set>QDockWidget::DockWidgetFloatable|QDockWidget::DockWidgetMovable</set>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>&Levels</string>
|
<string>Levels</string>
|
||||||
</property>
|
</property>
|
||||||
<attribute name="dockWidgetArea">
|
<attribute name="dockWidgetArea">
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
|
115
qspectrumanalyzer/qspectrumanalyzer_baseline.ui
Normal file
115
qspectrumanalyzer/qspectrumanalyzer_baseline.ui
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>QSpectrumAnalyzerBaseline</class>
|
||||||
|
<widget class="QDialog" name="QSpectrumAnalyzerBaseline">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>500</width>
|
||||||
|
<height>100</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>Baseline - QSpectrumAnalyzer</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
|
<item>
|
||||||
|
<layout class="QFormLayout" name="formLayout">
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label">
|
||||||
|
<property name="text">
|
||||||
|
<string>Baseline &file:</string>
|
||||||
|
</property>
|
||||||
|
<property name="buddy">
|
||||||
|
<cstring>baselineFileEdit</cstring>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QLineEdit" name="baselineFileEdit"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QToolButton" name="baselineFileButton">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>50</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>...</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>1</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDialogButtonBox" name="buttonBox">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="standardButtons">
|
||||||
|
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
<tabstops>
|
||||||
|
<tabstop>baselineFileEdit</tabstop>
|
||||||
|
<tabstop>baselineFileButton</tabstop>
|
||||||
|
</tabstops>
|
||||||
|
<resources/>
|
||||||
|
<connections>
|
||||||
|
<connection>
|
||||||
|
<sender>buttonBox</sender>
|
||||||
|
<signal>accepted()</signal>
|
||||||
|
<receiver>QSpectrumAnalyzerBaseline</receiver>
|
||||||
|
<slot>accept()</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>224</x>
|
||||||
|
<y>72</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>157</x>
|
||||||
|
<y>99</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
<connection>
|
||||||
|
<sender>buttonBox</sender>
|
||||||
|
<signal>rejected()</signal>
|
||||||
|
<receiver>QSpectrumAnalyzerBaseline</receiver>
|
||||||
|
<slot>reject()</slot>
|
||||||
|
<hints>
|
||||||
|
<hint type="sourcelabel">
|
||||||
|
<x>292</x>
|
||||||
|
<y>78</y>
|
||||||
|
</hint>
|
||||||
|
<hint type="destinationlabel">
|
||||||
|
<x>286</x>
|
||||||
|
<y>99</y>
|
||||||
|
</hint>
|
||||||
|
</hints>
|
||||||
|
</connection>
|
||||||
|
</connections>
|
||||||
|
</ui>
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ui version="4.0">
|
<ui version="4.0">
|
||||||
<class>QSpectrumAnalyzerSmooth</class>
|
<class>QSpectrumAnalyzerSmoothing</class>
|
||||||
<widget class="QDialog" name="QSpectrumAnalyzerSmooth">
|
<widget class="QDialog" name="QSpectrumAnalyzerSmoothing">
|
||||||
<property name="geometry">
|
<property name="geometry">
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
@ -118,7 +118,7 @@
|
|||||||
<connection>
|
<connection>
|
||||||
<sender>buttonBox</sender>
|
<sender>buttonBox</sender>
|
||||||
<signal>accepted()</signal>
|
<signal>accepted()</signal>
|
||||||
<receiver>QSpectrumAnalyzerSmooth</receiver>
|
<receiver>QSpectrumAnalyzerSmoothing</receiver>
|
||||||
<slot>accept()</slot>
|
<slot>accept()</slot>
|
||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel">
|
<hint type="sourcelabel">
|
||||||
@ -134,7 +134,7 @@
|
|||||||
<connection>
|
<connection>
|
||||||
<sender>buttonBox</sender>
|
<sender>buttonBox</sender>
|
||||||
<signal>rejected()</signal>
|
<signal>rejected()</signal>
|
||||||
<receiver>QSpectrumAnalyzerSmooth</receiver>
|
<receiver>QSpectrumAnalyzerSmoothing</receiver>
|
||||||
<slot>reject()</slot>
|
<slot>reject()</slot>
|
||||||
<hints>
|
<hints>
|
||||||
<hint type="sourcelabel">
|
<hint type="sourcelabel">
|
139
qspectrumanalyzer/settings.py
Normal file
139
qspectrumanalyzer/settings.py
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
from Qt import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
|
from qspectrumanalyzer import backends
|
||||||
|
|
||||||
|
from qspectrumanalyzer.ui_qspectrumanalyzer_settings import Ui_QSpectrumAnalyzerSettings
|
||||||
|
from qspectrumanalyzer.ui_qspectrumanalyzer_settings_help import Ui_QSpectrumAnalyzerSettingsHelp
|
||||||
|
|
||||||
|
|
||||||
|
class QSpectrumAnalyzerSettings(QtWidgets.QDialog, Ui_QSpectrumAnalyzerSettings):
|
||||||
|
"""QSpectrumAnalyzer settings dialog"""
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
# Initialize UI
|
||||||
|
super().__init__(parent)
|
||||||
|
self.setupUi(self)
|
||||||
|
self.params_help_dialog = None
|
||||||
|
self.device_help_dialog = None
|
||||||
|
|
||||||
|
# Load settings
|
||||||
|
settings = QtCore.QSettings()
|
||||||
|
self.executableEdit.setText(settings.value("executable", "soapy_power"))
|
||||||
|
self.deviceEdit.setText(settings.value("device", ""))
|
||||||
|
self.lnbSpinBox.setValue(settings.value("lnb_lo", 0, float) / 1e6)
|
||||||
|
self.waterfallHistorySizeSpinBox.setValue(settings.value("waterfall_history_size", 100, int))
|
||||||
|
|
||||||
|
backend = settings.value("backend", "soapy_power")
|
||||||
|
try:
|
||||||
|
backend_module = getattr(backends, backend)
|
||||||
|
except AttributeError:
|
||||||
|
backend_module = backends.soapy_power
|
||||||
|
|
||||||
|
self.paramsEdit.setText(settings.value("params", backend_module.Info.additional_params))
|
||||||
|
self.deviceHelpButton.setEnabled(bool(backend_module.Info.help_device))
|
||||||
|
|
||||||
|
self.sampleRateSpinBox.setMinimum(backend_module.Info.sample_rate_min / 1e6)
|
||||||
|
self.sampleRateSpinBox.setMaximum(backend_module.Info.sample_rate_max / 1e6)
|
||||||
|
self.sampleRateSpinBox.setValue(settings.value("sample_rate", backend_module.Info.sample_rate, float) / 1e6)
|
||||||
|
|
||||||
|
self.bandwidthSpinBox.setMinimum(backend_module.Info.bandwidth_min / 1e6)
|
||||||
|
self.bandwidthSpinBox.setMaximum(backend_module.Info.bandwidth_max / 1e6)
|
||||||
|
self.bandwidthSpinBox.setValue(settings.value("bandwidth", backend_module.Info.bandwidth, float) / 1e6)
|
||||||
|
|
||||||
|
self.backendComboBox.blockSignals(True)
|
||||||
|
self.backendComboBox.clear()
|
||||||
|
for b in sorted(backends.__all__):
|
||||||
|
self.backendComboBox.addItem(b)
|
||||||
|
|
||||||
|
i = self.backendComboBox.findText(backend)
|
||||||
|
if i == -1:
|
||||||
|
self.backendComboBox.setCurrentIndex(0)
|
||||||
|
else:
|
||||||
|
self.backendComboBox.setCurrentIndex(i)
|
||||||
|
self.backendComboBox.blockSignals(False)
|
||||||
|
|
||||||
|
@QtCore.Slot()
|
||||||
|
def on_executableButton_clicked(self):
|
||||||
|
"""Open file dialog when button is clicked"""
|
||||||
|
filename = QtWidgets.QFileDialog.getOpenFileName(self, self.tr("Select executable - QSpectrumAnalyzer"))[0]
|
||||||
|
if filename:
|
||||||
|
self.executableEdit.setText(filename)
|
||||||
|
|
||||||
|
@QtCore.Slot()
|
||||||
|
def on_paramsHelpButton_clicked(self):
|
||||||
|
"""Open additional parameters help dialog when button is clicked"""
|
||||||
|
try:
|
||||||
|
backend_module = getattr(backends, self.backendComboBox.currentText())
|
||||||
|
except AttributeError:
|
||||||
|
backend_module = backends.soapy_power
|
||||||
|
|
||||||
|
self.params_help_dialog = QSpectrumAnalyzerSettingsHelp(
|
||||||
|
backend_module.Info.help_params(self.executableEdit.text()),
|
||||||
|
parent=self
|
||||||
|
)
|
||||||
|
|
||||||
|
self.params_help_dialog.show()
|
||||||
|
self.params_help_dialog.raise_()
|
||||||
|
self.params_help_dialog.activateWindow()
|
||||||
|
|
||||||
|
@QtCore.Slot()
|
||||||
|
def on_deviceHelpButton_clicked(self):
|
||||||
|
"""Open device help dialog when button is clicked"""
|
||||||
|
try:
|
||||||
|
backend_module = getattr(backends, self.backendComboBox.currentText())
|
||||||
|
except AttributeError:
|
||||||
|
backend_module = backends.soapy_power
|
||||||
|
|
||||||
|
self.device_help_dialog = QSpectrumAnalyzerSettingsHelp(
|
||||||
|
backend_module.Info.help_device(self.executableEdit.text(), self.deviceEdit.text()),
|
||||||
|
parent=self
|
||||||
|
)
|
||||||
|
|
||||||
|
self.device_help_dialog.show()
|
||||||
|
self.device_help_dialog.raise_()
|
||||||
|
self.device_help_dialog.activateWindow()
|
||||||
|
|
||||||
|
@QtCore.Slot(str)
|
||||||
|
def on_backendComboBox_currentIndexChanged(self, text):
|
||||||
|
"""Change executable when backend is changed"""
|
||||||
|
self.executableEdit.setText(text)
|
||||||
|
self.deviceEdit.setText("")
|
||||||
|
|
||||||
|
try:
|
||||||
|
backend_module = getattr(backends, text)
|
||||||
|
except AttributeError:
|
||||||
|
backend_module = backends.soapy_power
|
||||||
|
|
||||||
|
self.paramsEdit.setText(backend_module.Info.additional_params)
|
||||||
|
self.deviceHelpButton.setEnabled(bool(backend_module.Info.help_device))
|
||||||
|
self.sampleRateSpinBox.setMinimum(backend_module.Info.sample_rate_min / 1e6)
|
||||||
|
self.sampleRateSpinBox.setMaximum(backend_module.Info.sample_rate_max / 1e6)
|
||||||
|
self.sampleRateSpinBox.setValue(backend_module.Info.sample_rate / 1e6)
|
||||||
|
self.bandwidthSpinBox.setMinimum(backend_module.Info.bandwidth_min / 1e6)
|
||||||
|
self.bandwidthSpinBox.setMaximum(backend_module.Info.bandwidth_max / 1e6)
|
||||||
|
self.bandwidthSpinBox.setValue(backend_module.Info.bandwidth / 1e6)
|
||||||
|
|
||||||
|
def accept(self):
|
||||||
|
"""Save settings when dialog is accepted"""
|
||||||
|
settings = QtCore.QSettings()
|
||||||
|
settings.setValue("backend", self.backendComboBox.currentText())
|
||||||
|
settings.setValue("executable", self.executableEdit.text())
|
||||||
|
settings.setValue("params", self.paramsEdit.text())
|
||||||
|
settings.setValue("device", self.deviceEdit.text())
|
||||||
|
settings.setValue("sample_rate", self.sampleRateSpinBox.value() * 1e6)
|
||||||
|
settings.setValue("bandwidth", self.bandwidthSpinBox.value() * 1e6)
|
||||||
|
settings.setValue("lnb_lo", self.lnbSpinBox.value() * 1e6)
|
||||||
|
settings.setValue("waterfall_history_size", self.waterfallHistorySizeSpinBox.value())
|
||||||
|
QtWidgets.QDialog.accept(self)
|
||||||
|
|
||||||
|
|
||||||
|
class QSpectrumAnalyzerSettingsHelp(QtWidgets.QDialog, Ui_QSpectrumAnalyzerSettingsHelp):
|
||||||
|
"""QSpectrumAnalyzer settings help dialog"""
|
||||||
|
def __init__(self, text, parent=None):
|
||||||
|
# Initialize UI
|
||||||
|
super().__init__(parent)
|
||||||
|
self.setupUi(self)
|
||||||
|
|
||||||
|
monospace_font = QtGui.QFont('monospace')
|
||||||
|
monospace_font.setStyleHint(QtGui.QFont.Monospace)
|
||||||
|
self.helpTextEdit.setFont(monospace_font)
|
||||||
|
self.helpTextEdit.setPlainText(text)
|
29
qspectrumanalyzer/smoothing.py
Normal file
29
qspectrumanalyzer/smoothing.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
from Qt import QtCore, QtWidgets
|
||||||
|
|
||||||
|
from qspectrumanalyzer.ui_qspectrumanalyzer_smoothing import Ui_QSpectrumAnalyzerSmoothing
|
||||||
|
|
||||||
|
|
||||||
|
class QSpectrumAnalyzerSmoothing(QtWidgets.QDialog, Ui_QSpectrumAnalyzerSmoothing):
|
||||||
|
"""QSpectrumAnalyzer spectrum smoothing dialog"""
|
||||||
|
def __init__(self, parent=None):
|
||||||
|
# Initialize UI
|
||||||
|
super().__init__(parent)
|
||||||
|
self.setupUi(self)
|
||||||
|
|
||||||
|
# Load settings
|
||||||
|
settings = QtCore.QSettings()
|
||||||
|
self.windowLengthSpinBox.setValue(settings.value("smooth_length", 11, int))
|
||||||
|
|
||||||
|
window_function = settings.value("smooth_window", "hanning")
|
||||||
|
i = self.windowFunctionComboBox.findText(window_function)
|
||||||
|
if i == -1:
|
||||||
|
self.windowFunctionComboBox.setCurrentIndex(0)
|
||||||
|
else:
|
||||||
|
self.windowFunctionComboBox.setCurrentIndex(i)
|
||||||
|
|
||||||
|
def accept(self):
|
||||||
|
"""Save settings when dialog is accepted"""
|
||||||
|
settings = QtCore.QSettings()
|
||||||
|
settings.setValue("smooth_length", self.windowLengthSpinBox.value())
|
||||||
|
settings.setValue("smooth_window", self.windowFunctionComboBox.currentText())
|
||||||
|
QtWidgets.QDialog.accept(self)
|
@ -317,18 +317,18 @@ class Ui_QSpectrumAnalyzerMainWindow(object):
|
|||||||
QSpectrumAnalyzerMainWindow.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "QSpectrumAnalyzer"))
|
QSpectrumAnalyzerMainWindow.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "QSpectrumAnalyzer"))
|
||||||
self.menu_File.setTitle(_translate("QSpectrumAnalyzerMainWindow", "&File"))
|
self.menu_File.setTitle(_translate("QSpectrumAnalyzerMainWindow", "&File"))
|
||||||
self.menu_Help.setTitle(_translate("QSpectrumAnalyzerMainWindow", "&Help"))
|
self.menu_Help.setTitle(_translate("QSpectrumAnalyzerMainWindow", "&Help"))
|
||||||
self.controlsDockWidget.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "&Controls"))
|
self.controlsDockWidget.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "Controls"))
|
||||||
self.startButton.setText(_translate("QSpectrumAnalyzerMainWindow", "&Start"))
|
self.startButton.setText(_translate("QSpectrumAnalyzerMainWindow", "&Start"))
|
||||||
self.stopButton.setText(_translate("QSpectrumAnalyzerMainWindow", "S&top"))
|
self.stopButton.setText(_translate("QSpectrumAnalyzerMainWindow", "S&top"))
|
||||||
self.singleShotButton.setText(_translate("QSpectrumAnalyzerMainWindow", "Si&ngle shot"))
|
self.singleShotButton.setText(_translate("QSpectrumAnalyzerMainWindow", "Si&ngle shot"))
|
||||||
self.frequencyDockWidget.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "Fre&quency"))
|
self.frequencyDockWidget.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "Frequency"))
|
||||||
self.label_2.setText(_translate("QSpectrumAnalyzerMainWindow", "Start:"))
|
self.label_2.setText(_translate("QSpectrumAnalyzerMainWindow", "Start:"))
|
||||||
self.startFreqSpinBox.setSuffix(_translate("QSpectrumAnalyzerMainWindow", " MHz"))
|
self.startFreqSpinBox.setSuffix(_translate("QSpectrumAnalyzerMainWindow", " MHz"))
|
||||||
self.label_3.setText(_translate("QSpectrumAnalyzerMainWindow", "Stop:"))
|
self.label_3.setText(_translate("QSpectrumAnalyzerMainWindow", "Stop:"))
|
||||||
self.stopFreqSpinBox.setSuffix(_translate("QSpectrumAnalyzerMainWindow", " MHz"))
|
self.stopFreqSpinBox.setSuffix(_translate("QSpectrumAnalyzerMainWindow", " MHz"))
|
||||||
self.label.setText(_translate("QSpectrumAnalyzerMainWindow", "&Bin size:"))
|
self.label.setText(_translate("QSpectrumAnalyzerMainWindow", "&Bin size:"))
|
||||||
self.binSizeSpinBox.setSuffix(_translate("QSpectrumAnalyzerMainWindow", " kHz"))
|
self.binSizeSpinBox.setSuffix(_translate("QSpectrumAnalyzerMainWindow", " kHz"))
|
||||||
self.settingsDockWidget.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "Se&ttings"))
|
self.settingsDockWidget.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "Settings"))
|
||||||
self.label_4.setText(_translate("QSpectrumAnalyzerMainWindow", "&Interval [s]:"))
|
self.label_4.setText(_translate("QSpectrumAnalyzerMainWindow", "&Interval [s]:"))
|
||||||
self.label_6.setText(_translate("QSpectrumAnalyzerMainWindow", "&Gain [dB]:"))
|
self.label_6.setText(_translate("QSpectrumAnalyzerMainWindow", "&Gain [dB]:"))
|
||||||
self.label_5.setText(_translate("QSpectrumAnalyzerMainWindow", "Corr. [ppm]:"))
|
self.label_5.setText(_translate("QSpectrumAnalyzerMainWindow", "Corr. [ppm]:"))
|
||||||
@ -346,7 +346,7 @@ class Ui_QSpectrumAnalyzerMainWindow(object):
|
|||||||
self.baselineCheckBox.setText(_translate("QSpectrumAnalyzerMainWindow", "Baseline"))
|
self.baselineCheckBox.setText(_translate("QSpectrumAnalyzerMainWindow", "Baseline"))
|
||||||
self.baselineButton.setText(_translate("QSpectrumAnalyzerMainWindow", "..."))
|
self.baselineButton.setText(_translate("QSpectrumAnalyzerMainWindow", "..."))
|
||||||
self.subtractBaselineCheckBox.setText(_translate("QSpectrumAnalyzerMainWindow", "Subtract baseline"))
|
self.subtractBaselineCheckBox.setText(_translate("QSpectrumAnalyzerMainWindow", "Subtract baseline"))
|
||||||
self.levelsDockWidget.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "&Levels"))
|
self.levelsDockWidget.setWindowTitle(_translate("QSpectrumAnalyzerMainWindow", "Levels"))
|
||||||
self.action_Settings.setText(_translate("QSpectrumAnalyzerMainWindow", "&Settings..."))
|
self.action_Settings.setText(_translate("QSpectrumAnalyzerMainWindow", "&Settings..."))
|
||||||
self.action_Quit.setText(_translate("QSpectrumAnalyzerMainWindow", "&Quit"))
|
self.action_Quit.setText(_translate("QSpectrumAnalyzerMainWindow", "&Quit"))
|
||||||
self.action_Quit.setShortcut(_translate("QSpectrumAnalyzerMainWindow", "Ctrl+Q"))
|
self.action_Quit.setShortcut(_translate("QSpectrumAnalyzerMainWindow", "Ctrl+Q"))
|
||||||
|
53
qspectrumanalyzer/ui_qspectrumanalyzer_baseline.py
Normal file
53
qspectrumanalyzer/ui_qspectrumanalyzer_baseline.py
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Form implementation generated from reading ui file 'qspectrumanalyzer/qspectrumanalyzer_baseline.ui'
|
||||||
|
#
|
||||||
|
# Created by: PyQt5 UI code generator 5.8
|
||||||
|
#
|
||||||
|
# WARNING! All changes made in this file will be lost!
|
||||||
|
|
||||||
|
from Qt import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
|
class Ui_QSpectrumAnalyzerBaseline(object):
|
||||||
|
def setupUi(self, QSpectrumAnalyzerBaseline):
|
||||||
|
QSpectrumAnalyzerBaseline.setObjectName("QSpectrumAnalyzerBaseline")
|
||||||
|
QSpectrumAnalyzerBaseline.resize(500, 100)
|
||||||
|
self.verticalLayout = QtWidgets.QVBoxLayout(QSpectrumAnalyzerBaseline)
|
||||||
|
self.verticalLayout.setObjectName("verticalLayout")
|
||||||
|
self.formLayout = QtWidgets.QFormLayout()
|
||||||
|
self.formLayout.setObjectName("formLayout")
|
||||||
|
self.label = QtWidgets.QLabel(QSpectrumAnalyzerBaseline)
|
||||||
|
self.label.setObjectName("label")
|
||||||
|
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label)
|
||||||
|
self.horizontalLayout = QtWidgets.QHBoxLayout()
|
||||||
|
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||||
|
self.baselineFileEdit = QtWidgets.QLineEdit(QSpectrumAnalyzerBaseline)
|
||||||
|
self.baselineFileEdit.setObjectName("baselineFileEdit")
|
||||||
|
self.horizontalLayout.addWidget(self.baselineFileEdit)
|
||||||
|
self.baselineFileButton = QtWidgets.QToolButton(QSpectrumAnalyzerBaseline)
|
||||||
|
self.baselineFileButton.setMinimumSize(QtCore.QSize(50, 0))
|
||||||
|
self.baselineFileButton.setObjectName("baselineFileButton")
|
||||||
|
self.horizontalLayout.addWidget(self.baselineFileButton)
|
||||||
|
self.formLayout.setLayout(0, QtWidgets.QFormLayout.FieldRole, self.horizontalLayout)
|
||||||
|
self.verticalLayout.addLayout(self.formLayout)
|
||||||
|
spacerItem = QtWidgets.QSpacerItem(20, 1, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||||
|
self.verticalLayout.addItem(spacerItem)
|
||||||
|
self.buttonBox = QtWidgets.QDialogButtonBox(QSpectrumAnalyzerBaseline)
|
||||||
|
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
|
||||||
|
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
|
||||||
|
self.buttonBox.setObjectName("buttonBox")
|
||||||
|
self.verticalLayout.addWidget(self.buttonBox)
|
||||||
|
self.label.setBuddy(self.baselineFileEdit)
|
||||||
|
|
||||||
|
self.retranslateUi(QSpectrumAnalyzerBaseline)
|
||||||
|
self.buttonBox.accepted.connect(QSpectrumAnalyzerBaseline.accept)
|
||||||
|
self.buttonBox.rejected.connect(QSpectrumAnalyzerBaseline.reject)
|
||||||
|
QtCore.QMetaObject.connectSlotsByName(QSpectrumAnalyzerBaseline)
|
||||||
|
QSpectrumAnalyzerBaseline.setTabOrder(self.baselineFileEdit, self.baselineFileButton)
|
||||||
|
|
||||||
|
def retranslateUi(self, QSpectrumAnalyzerBaseline):
|
||||||
|
_translate = QtCore.QCoreApplication.translate
|
||||||
|
QSpectrumAnalyzerBaseline.setWindowTitle(_translate("QSpectrumAnalyzerBaseline", "Baseline - QSpectrumAnalyzer"))
|
||||||
|
self.label.setText(_translate("QSpectrumAnalyzerBaseline", "Baseline &file:"))
|
||||||
|
self.baselineFileButton.setText(_translate("QSpectrumAnalyzerBaseline", "..."))
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
# Form implementation generated from reading ui file 'qspectrumanalyzer/qspectrumanalyzer_smooth.ui'
|
# Form implementation generated from reading ui file 'qspectrumanalyzer/qspectrumanalyzer_smoothing.ui'
|
||||||
#
|
#
|
||||||
# Created by: PyQt5 UI code generator 5.8
|
# Created by: PyQt5 UI code generator 5.8
|
||||||
#
|
#
|
||||||
@ -8,18 +8,18 @@
|
|||||||
|
|
||||||
from Qt import QtCore, QtGui, QtWidgets
|
from Qt import QtCore, QtGui, QtWidgets
|
||||||
|
|
||||||
class Ui_QSpectrumAnalyzerSmooth(object):
|
class Ui_QSpectrumAnalyzerSmoothing(object):
|
||||||
def setupUi(self, QSpectrumAnalyzerSmooth):
|
def setupUi(self, QSpectrumAnalyzerSmoothing):
|
||||||
QSpectrumAnalyzerSmooth.setObjectName("QSpectrumAnalyzerSmooth")
|
QSpectrumAnalyzerSmoothing.setObjectName("QSpectrumAnalyzerSmoothing")
|
||||||
QSpectrumAnalyzerSmooth.resize(250, 130)
|
QSpectrumAnalyzerSmoothing.resize(250, 130)
|
||||||
self.verticalLayout = QtWidgets.QVBoxLayout(QSpectrumAnalyzerSmooth)
|
self.verticalLayout = QtWidgets.QVBoxLayout(QSpectrumAnalyzerSmoothing)
|
||||||
self.verticalLayout.setObjectName("verticalLayout")
|
self.verticalLayout.setObjectName("verticalLayout")
|
||||||
self.formLayout = QtWidgets.QFormLayout()
|
self.formLayout = QtWidgets.QFormLayout()
|
||||||
self.formLayout.setObjectName("formLayout")
|
self.formLayout.setObjectName("formLayout")
|
||||||
self.label = QtWidgets.QLabel(QSpectrumAnalyzerSmooth)
|
self.label = QtWidgets.QLabel(QSpectrumAnalyzerSmoothing)
|
||||||
self.label.setObjectName("label")
|
self.label.setObjectName("label")
|
||||||
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label)
|
self.formLayout.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label)
|
||||||
self.windowFunctionComboBox = QtWidgets.QComboBox(QSpectrumAnalyzerSmooth)
|
self.windowFunctionComboBox = QtWidgets.QComboBox(QSpectrumAnalyzerSmoothing)
|
||||||
self.windowFunctionComboBox.setObjectName("windowFunctionComboBox")
|
self.windowFunctionComboBox.setObjectName("windowFunctionComboBox")
|
||||||
self.windowFunctionComboBox.addItem("")
|
self.windowFunctionComboBox.addItem("")
|
||||||
self.windowFunctionComboBox.addItem("")
|
self.windowFunctionComboBox.addItem("")
|
||||||
@ -27,10 +27,10 @@ class Ui_QSpectrumAnalyzerSmooth(object):
|
|||||||
self.windowFunctionComboBox.addItem("")
|
self.windowFunctionComboBox.addItem("")
|
||||||
self.windowFunctionComboBox.addItem("")
|
self.windowFunctionComboBox.addItem("")
|
||||||
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.windowFunctionComboBox)
|
self.formLayout.setWidget(0, QtWidgets.QFormLayout.FieldRole, self.windowFunctionComboBox)
|
||||||
self.label_2 = QtWidgets.QLabel(QSpectrumAnalyzerSmooth)
|
self.label_2 = QtWidgets.QLabel(QSpectrumAnalyzerSmoothing)
|
||||||
self.label_2.setObjectName("label_2")
|
self.label_2.setObjectName("label_2")
|
||||||
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_2)
|
self.formLayout.setWidget(1, QtWidgets.QFormLayout.LabelRole, self.label_2)
|
||||||
self.windowLengthSpinBox = QtWidgets.QSpinBox(QSpectrumAnalyzerSmooth)
|
self.windowLengthSpinBox = QtWidgets.QSpinBox(QSpectrumAnalyzerSmoothing)
|
||||||
self.windowLengthSpinBox.setMinimum(3)
|
self.windowLengthSpinBox.setMinimum(3)
|
||||||
self.windowLengthSpinBox.setMaximum(1001)
|
self.windowLengthSpinBox.setMaximum(1001)
|
||||||
self.windowLengthSpinBox.setProperty("value", 11)
|
self.windowLengthSpinBox.setProperty("value", 11)
|
||||||
@ -39,7 +39,7 @@ class Ui_QSpectrumAnalyzerSmooth(object):
|
|||||||
self.verticalLayout.addLayout(self.formLayout)
|
self.verticalLayout.addLayout(self.formLayout)
|
||||||
spacerItem = QtWidgets.QSpacerItem(20, 1, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
spacerItem = QtWidgets.QSpacerItem(20, 1, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
|
||||||
self.verticalLayout.addItem(spacerItem)
|
self.verticalLayout.addItem(spacerItem)
|
||||||
self.buttonBox = QtWidgets.QDialogButtonBox(QSpectrumAnalyzerSmooth)
|
self.buttonBox = QtWidgets.QDialogButtonBox(QSpectrumAnalyzerSmoothing)
|
||||||
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
|
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
|
||||||
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
|
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Cancel|QtWidgets.QDialogButtonBox.Ok)
|
||||||
self.buttonBox.setObjectName("buttonBox")
|
self.buttonBox.setObjectName("buttonBox")
|
||||||
@ -47,22 +47,22 @@ class Ui_QSpectrumAnalyzerSmooth(object):
|
|||||||
self.label.setBuddy(self.windowFunctionComboBox)
|
self.label.setBuddy(self.windowFunctionComboBox)
|
||||||
self.label_2.setBuddy(self.windowLengthSpinBox)
|
self.label_2.setBuddy(self.windowLengthSpinBox)
|
||||||
|
|
||||||
self.retranslateUi(QSpectrumAnalyzerSmooth)
|
self.retranslateUi(QSpectrumAnalyzerSmoothing)
|
||||||
self.windowFunctionComboBox.setCurrentIndex(1)
|
self.windowFunctionComboBox.setCurrentIndex(1)
|
||||||
self.buttonBox.accepted.connect(QSpectrumAnalyzerSmooth.accept)
|
self.buttonBox.accepted.connect(QSpectrumAnalyzerSmoothing.accept)
|
||||||
self.buttonBox.rejected.connect(QSpectrumAnalyzerSmooth.reject)
|
self.buttonBox.rejected.connect(QSpectrumAnalyzerSmoothing.reject)
|
||||||
QtCore.QMetaObject.connectSlotsByName(QSpectrumAnalyzerSmooth)
|
QtCore.QMetaObject.connectSlotsByName(QSpectrumAnalyzerSmoothing)
|
||||||
QSpectrumAnalyzerSmooth.setTabOrder(self.windowFunctionComboBox, self.windowLengthSpinBox)
|
QSpectrumAnalyzerSmoothing.setTabOrder(self.windowFunctionComboBox, self.windowLengthSpinBox)
|
||||||
QSpectrumAnalyzerSmooth.setTabOrder(self.windowLengthSpinBox, self.buttonBox)
|
QSpectrumAnalyzerSmoothing.setTabOrder(self.windowLengthSpinBox, self.buttonBox)
|
||||||
|
|
||||||
def retranslateUi(self, QSpectrumAnalyzerSmooth):
|
def retranslateUi(self, QSpectrumAnalyzerSmoothing):
|
||||||
_translate = QtCore.QCoreApplication.translate
|
_translate = QtCore.QCoreApplication.translate
|
||||||
QSpectrumAnalyzerSmooth.setWindowTitle(_translate("QSpectrumAnalyzerSmooth", "Smoothing - QSpectrumAnalyzer"))
|
QSpectrumAnalyzerSmoothing.setWindowTitle(_translate("QSpectrumAnalyzerSmoothing", "Smoothing - QSpectrumAnalyzer"))
|
||||||
self.label.setText(_translate("QSpectrumAnalyzerSmooth", "&Window function:"))
|
self.label.setText(_translate("QSpectrumAnalyzerSmoothing", "&Window function:"))
|
||||||
self.windowFunctionComboBox.setItemText(0, _translate("QSpectrumAnalyzerSmooth", "rectangular"))
|
self.windowFunctionComboBox.setItemText(0, _translate("QSpectrumAnalyzerSmoothing", "rectangular"))
|
||||||
self.windowFunctionComboBox.setItemText(1, _translate("QSpectrumAnalyzerSmooth", "hanning"))
|
self.windowFunctionComboBox.setItemText(1, _translate("QSpectrumAnalyzerSmoothing", "hanning"))
|
||||||
self.windowFunctionComboBox.setItemText(2, _translate("QSpectrumAnalyzerSmooth", "hamming"))
|
self.windowFunctionComboBox.setItemText(2, _translate("QSpectrumAnalyzerSmoothing", "hamming"))
|
||||||
self.windowFunctionComboBox.setItemText(3, _translate("QSpectrumAnalyzerSmooth", "bartlett"))
|
self.windowFunctionComboBox.setItemText(3, _translate("QSpectrumAnalyzerSmoothing", "bartlett"))
|
||||||
self.windowFunctionComboBox.setItemText(4, _translate("QSpectrumAnalyzerSmooth", "blackman"))
|
self.windowFunctionComboBox.setItemText(4, _translate("QSpectrumAnalyzerSmoothing", "blackman"))
|
||||||
self.label_2.setText(_translate("QSpectrumAnalyzerSmooth", "Window len>h:"))
|
self.label_2.setText(_translate("QSpectrumAnalyzerSmoothing", "Window len>h:"))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user