Skip to content
Snippets Groups Projects

Refactor signal generation GUI

Merged Oscar Gustafsson requested to merge guisignalgenerator into master
Files
3
+ 63
0
# -*- coding: utf-8 -*-
from qtpy.QtWidgets import (
QCheckBox,
QComboBox,
QDialog,
QFileDialog,
QFormLayout,
QFrame,
QGridLayout,
QHBoxLayout,
QLabel,
QLineEdit,
QPushButton,
QShortcut,
QSizePolicy,
QSpinBox,
QVBoxLayout,
)
from b_asic.signal_generator import Impulse, Step
class SignalGeneratorInput(QGridLayout):
"""Abstract class for graphically configuring and generating signal generators.
"""
def get_generator(self):
raise NotImplementedError
class DelayInput(SignalGeneratorInput):
"""
Abstract class for graphically configuring and generating signal generators that
have a single delay parameter.
"""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.delay_label = QLabel("Delay")
self.addWidget(self.delay_label, 0, 0)
self.delay_spin_box = QSpinBox()
self.delay_spin_box.setRange(0, 2147483647)
self.addWidget(self.delay_spin_box, 0, 1)
class ImpulseInput(DelayInput):
"""
Class for graphically configuring and generating a
:class:`~b_asic.signal_generators.Impulse` signal generator.
"""
def get_generator(self):
return Impulse(self.delay_spin_box.value())
class StepInput(DelayInput):
"""
Class for graphically configuring and generating a
:class:`~b_asic.signal_generators.Step` signal generator.
"""
def get_generator(self):
return Step(self.delay_spin_box.value())
Loading