53 lines
2.2 KiB
Python
53 lines
2.2 KiB
Python
"""Builder for radar settings section."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from PyQt6.QtWidgets import QGroupBox, QLabel, QLineEdit, QVBoxLayout
|
|
|
|
from python_app.gui.controllers.sections.layout_helpers import build_two_column_form_widget
|
|
|
|
|
|
def build_radar_group(owner) -> QGroupBox:
|
|
"""Create radar settings controls and labels."""
|
|
group = QGroupBox("Radar")
|
|
layout = QVBoxLayout(group)
|
|
layout.setContentsMargins(10, 10, 10, 10)
|
|
layout.setSpacing(8)
|
|
defaults = owner._defaults_config.radar
|
|
|
|
owner._start_hz_input = QLineEdit(f"{defaults.sweep.start_hz:g}")
|
|
owner._stop_hz_input = QLineEdit(f"{defaults.sweep.stop_hz:g}")
|
|
owner._points_input = QLineEdit(str(defaults.sweep.points))
|
|
owner._ifbw_input = QLineEdit(f"{defaults.sweep.if_bandwidth_hz:g}")
|
|
owner._power_input = QLineEdit(f"{defaults.sweep.power_dbm:g}")
|
|
owner._power_input.setToolTip("Stimulus power configured in the active profile.")
|
|
owner._start_hz_input.editingFinished.connect(owner._on_radar_sweep_limits_changed)
|
|
owner._stop_hz_input.editingFinished.connect(owner._on_radar_sweep_limits_changed)
|
|
owner._points_input.editingFinished.connect(owner._on_radar_sweep_limits_changed)
|
|
owner._ifbw_input.editingFinished.connect(owner._on_radar_sweep_limits_changed)
|
|
owner._power_input.editingFinished.connect(owner._on_radar_sweep_limits_changed)
|
|
|
|
owner._radar_start_label = QLabel("Start Hz")
|
|
owner._radar_stop_label = QLabel("Stop Hz")
|
|
owner._radar_points_label = QLabel("Points")
|
|
owner._radar_ifbw_label = QLabel("IF BW Hz")
|
|
owner._radar_power_label = QLabel("Stimulus Power dBm")
|
|
|
|
owner._radar_limits_hint = QLabel("Device limits are not available.")
|
|
owner._radar_limits_hint.setObjectName("hintLabel")
|
|
|
|
layout.addWidget(
|
|
build_two_column_form_widget(
|
|
group,
|
|
[
|
|
(owner._radar_start_label, owner._start_hz_input),
|
|
(owner._radar_stop_label, owner._stop_hz_input),
|
|
(owner._radar_points_label, owner._points_input),
|
|
(owner._radar_ifbw_label, owner._ifbw_input),
|
|
(owner._radar_power_label, owner._power_input),
|
|
],
|
|
)
|
|
)
|
|
layout.addWidget(owner._radar_limits_hint)
|
|
return group
|