pyqt_reactive.widgets.status_indicator

Reusable status indicator widget with colored dot, label, and refresh button.

Functions

get_status_color(state, color_scheme)

Resolve status state to color from scheme.

Classes

StatusIndicator([check_fn, color_scheme, ...])

Reusable status indicator with colored dot, label, and refresh button.

StatusState(*values)

Status indicator states — colors resolved from color scheme at runtime.

class pyqt_reactive.widgets.status_indicator.StatusState(*values)[source]

Status indicator states — colors resolved from color scheme at runtime.

UNKNOWN = 'Unknown'
CHECKING = 'Checking...'
CONNECTED = 'connected'
DISCONNECTED = 'disconnected'
WARNING = 'warning'
property default_message: str | None
pyqt_reactive.widgets.status_indicator.get_status_color(state: StatusState, color_scheme: ColorScheme) str[source]

Resolve status state to color from scheme.

class pyqt_reactive.widgets.status_indicator.StatusIndicator(check_fn: Callable[[], Tuple[bool, str]] = None, color_scheme: ColorScheme = None, show_refresh: bool = True, debounce_ms: int = 2000, parent=None)[source]

Reusable status indicator with colored dot, label, and refresh button.

Usage:
indicator = StatusIndicator(

check_fn=lambda: my_service.test_connection(), color_scheme=self.color_scheme, parent=self

) layout.addWidget(indicator)

# check_fn returns Tuple[bool, str]: (is_ok, status_message) # True → CONNECTED state, False → DISCONNECTED state

__init__(check_fn: Callable[[], Tuple[bool, str]] = None, color_scheme: ColorScheme = None, show_refresh: bool = True, debounce_ms: int = 2000, parent=None)[source]
set_state(state: StatusState, message: str = None)[source]

Update visual state.

refresh(force: bool = False)[source]

Trigger async status check.

showEvent(event)[source]

Auto-refresh on show (no debounce for initial check).

closeEvent(event)[source]

Cleanup on close.