generic typing of field definitions and value getter function for single widgets

This commit is contained in:
2026-07-03 13:00:56 +02:00
parent deeb038956
commit afa8fb351d
2 changed files with 149 additions and 77 deletions
+7 -2
View File
@@ -4,12 +4,17 @@ import dataclasses as dc
import enum
import uuid
from collections.abc import Sequence
from typing import Any, Final
from typing import TYPE_CHECKING, Any, Final, Generic, TypeVar
import babel
from wce_crm.custom_widget_registry import CUSTOM_WIDGET_NAMES
if TYPE_CHECKING:
from PySide6.QtWidgets import QWidget
T = TypeVar("T", bound="QWidget")
class FormFieldType(enum.StrEnum):
GROUP = enum.auto()
@@ -31,7 +36,7 @@ class FormFieldType(enum.StrEnum):
@dc.dataclass(slots=True)
class FormField:
class FormField(Generic[T]):
label: str
type: FormFieldType
children: Sequence[FormField] = dc.field(default_factory=list)