"""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