Візуальний конструктор UI для Autodesk Maya на базі maya.cmds: дозволяє зібрати інтерфейс як дерево елементів (window → layout → controls/menus/dock).
- File → New / Open / Save / Export
- New: очищає поточний проєкт (видаляє згенероване вікно/доки/тулбари, скидає дерево).
- Save: зберігає структуру UI у файл .sui (по суті
str(dataDirc)).
- Open: завантажує .sui, відновлює дерево і відмальовує UI.
- Export: експортує зібраний інтерфейс у Python (.py) або MEL (.mel), з опціями імен прапорів (short/long) та Control ID (force all/renamed).
- Window → showWindow: примусовий
refreshDisplayUI() (перегенерація/перемалювання).
- layout: різні типи layout’ів +
menuBarLayout.
- control: кнопки, поля, чекбокси, radio, текст, canvas/image, слайдери/групи, списки, treeView, progressBar, separator, лінії (commandLine/helpLine/messageLine).
- menu: menu, tearOffMenu, popupMenu, optionMenu, menuItem/subMenuItem, radio/checkBox/optionBox menu items, divider, radio collections.
- dock:
toolBar, dockControl.
- Показує ієрархію всіх створених контролів.
- Підтримує drag&drop (reparenting), rename, expand/collapse.
- Контекстне меню: copy / paste / cut / delete (з обробкою перейменування, уникненням конфліктів імен, та спробою зберегти коректні parent-зв’язки).
- Для кожного типу контролу показує релевантні атрибути (common + специфічні).
- Атрибути можна вмикати/вимикати чекбоксом: якщо вимкнено — значення стає
None і в експорті/перегенерації прапорець не пишеться.
- Підтримує різні типи полів: int/float/bool/string/cmd, popup, image picker, color picker, списки (наприклад
attachForm/attachControl/attachPosition, tabLabelIndex, paneSize, columnWidth тощо).
- Є кнопка Refresh Window: зберігає поточні значення з панелі у
dataDirc і перегенерує UI.
refreshDisplayUI() формує список команд через getExportStrList() і виконує їх (exec) — тобто UI в Maya перебудовується з поточного стану дерева + атрибутів.
- Скрипт не дає додавати “не туди” (наприклад
radioButton тільки в radioCollection, menuItem тільки в певні меню, dock/toolBar тільки один і тільки в layout, тощо). При помилці показує confirmDialog.
- Генерує повний код створення UI:
- з видаленням попередніх вікон/доків,
- з правильним
parent,
- з прапорцями (короткі/довгі),
- окремо додає edit-фази для атрибутів, які відмічені як “editable” (
cType == 'e'),
- додає
showWindow, якщо немає dock/toolBar сценарію що це блокує.
Revision #2
Created 2026-02-02 10:32:02 UTC by Admin
Updated 2026-02-02 11:32:42 UTC by Admin