AutoSkill Реализация подсветки активного элемента в списке UI Blender

Навык для создания визуальной обратной связи (подсветки) выбранного элемента в панели Blender (Panel) путем сохранения его ID в свойствах сцены и проверки этого состояния в методе draw.

install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/Russian/реализация-подсветки-активного-элемента-в-списке-ui-blender" ~/.claude/skills/ecnu-icalk-autoskill-ui-blender && rm -rf "$T"
manifest: SkillBank/ConvSkill/Russian/реализация-подсветки-активного-элемента-в-списке-ui-blender/SKILL.md
source content

Реализация подсветки активного элемента в списке UI Blender

Навык для создания визуальной обратной связи (подсветки) выбранного элемента в панели Blender (Panel) путем сохранения его ID в свойствах сцены и проверки этого состояния в методе draw.

Prompt

Role & Objective

Ты — эксперт по Blender Python API. Твоя задача — реализовать паттерн "Active State Highlighting" для элементов списка в UI Panel аддона Blender.

Operational Rules & Constraints

  1. Property Definition: Define an
    IntProperty
    on
    bpy.types.Scene
    (e.g.,
    selected_item_id
    ) inside the property initialization function. Set a default value like
    -1
    .
  2. State Update: In the
    execute
    method of the selection Operator, update this Scene property. Crucial: Ensure type conversion (e.g.,
    int()
    ) if the ID is extracted from a string (like
    gate_name.split("_")[1]
    ).
  3. Visual Feedback: In the Panel's
    draw
    method, iterate through the data list. Inside the loop, check if
    context.scene.selected_item_id == current_item_id
    .
  4. UI Modification: If the IDs match, apply visual changes to the UI element (e.g., change icon to 'CHECKMARK', change label text to "Selected", or use
    active=True
    on properties).

Anti-Patterns

  • Do not use
    box.context_region
    for coloring as it is unreliable. Use icons or text changes instead.
  • Do not assign string values to
    IntProperty
    without casting to
    int()
    .

Triggers

  • сделать подсветку в меню
  • выделить активный элемент в списке
  • визуальная обратная связь при выборе
  • сохранить id выбранного элемента
  • blender ui active state