"""
overlay_panel
デバッグ表示の切替チェックボックスを提供するパネル
"""
from PySide6.QtWidgets import QCheckBox, QGroupBox, QVBoxLayout
from pc.vision.overlay import OverlayFlags
class OverlayPanel(QGroupBox):
"""デバッグ表示の切替チェックボックス群"""
def __init__(self) -> None:
super().__init__("デバッグ表示")
self._flags = OverlayFlags()
self._setup_ui()
def _setup_ui(self) -> None:
"""UI を構築する"""
layout = QVBoxLayout()
self.setLayout(layout)
items = [
("二値化画像", "binary"),
("検出領域", "detect_region"),
("フィッティング曲線", "poly_curve"),
("行中心点", "row_centers"),
("Theil-Sen直線", "theil_sen"),
("中心線", "center_line"),
("パシュート目標点", "pursuit_points"),
]
for label, attr in items:
cb = QCheckBox(label)
cb.toggled.connect(
lambda checked, a=attr: setattr(
self._flags, a, checked,
),
)
layout.addWidget(cb)
def get_flags(self) -> OverlayFlags:
"""現在のオーバーレイフラグを返す"""
return self._flags