Название: Замена на массив Отправлено: Igors от Апрель 12, 2019, 07:58 Добрый день
Немного специфики, пример. Есть модель какого-то персонажа. Юзер хочет напр сделать ему шапочку красной, курточку синей, а ботинки какой-то текстурой. Конечно для этого ему надо выбрать фейсы шапочки и др. При этом однако никаких новых моделей не создается, просто запоминаются индексы фейсов и к ним применяется свой "материал". Ну а материал - это не только цвет/текстура, в его окне только тапок с десяток. В общем случае: жила-была большая структура данных, теперь выясняется нужно заменить ее на массив таких структур. Ну а в UI сделать переключатель какой эл-т массива редактируется. И вот тут возникает (упорная) "хотелка" - какие-то поля структуры хочется иметь общими для всех (эл-тов). Напр модель имеет 5 материалов, диффузный цвет общий. Изменили его на красный - все 5 стали красными. Но как это оформить в UI? Как-то менять вид контролов очень трудоемко. Вывалить список чекбоксов малоэффективно. Пока никаких идей нет. Что предложите? Спасибо Название: Re: Замена на массив Отправлено: sergek от Апрель 12, 2019, 11:43 Может, применить подход, аналогичный использованию стилей в html: можно задать стиль для любого элемента, а можно задать стиль для типа элемента.
Применительно к вашей структуре - поле это элемент. Остается его идентифицировать, и в случае, когда изменяется свойство поля, для которого есть стиль, он применяется для всех аналогичных полей. Название: Re: Замена на массив Отправлено: Igors от Апрель 12, 2019, 15:57 ..., и в случае, когда изменяется свойство поля, для которого есть стиль, он применяется для всех аналогичных полей. Собсно "применить" - проблем нет, чисто техническая работа. Проблема как дать это понять юзеру, типа "дызайн". Т.е. как он должен видеть что вот этот параметр - общий, а вот тот - нет, и (ненавязчиво) изменить это. Дохленькое решение - contextual попапка "Set for All", все-таки лучше чем ничего. Правда это не конает для параметров-текстур (а таких немало)Название: Re: Замена на массив Отправлено: Day от Апрель 14, 2019, 10:02 Задача видится как "деревянная". Может быть подумать о том, как все управление запихнуть в QTreeWidget ?
Название: Re: Замена на массив Отправлено: Igors от Апрель 14, 2019, 15:57 Задача видится как "деревянная". Может быть подумать о том, как все управление запихнуть в QTreeWidget ? Полагаю у Вас тоже есть UI/окна, многие ли из них удастся так "запихнуть"? :)Предлагалось выделять "общие" параметры цветом и/или шрифтом, по контекстной попапке менять. Это, однако, неизбежно вызывает непонятки и квешнзы "а что это?", во всяком случае при первом взгляде на UI Название: Re: Замена на массив Отправлено: Day от Апрель 14, 2019, 16:14 Igors, мой совет - не более чем верхоглядское соображение.
Цитировать неизбежно вызывает непонятки и квешнзы "а что это?", Имхо, для начала надо бы, чтобы структура была абсолютно понятна вам самому. А уже потом пытаться донести ее смысл до юзверя. Опять же, не более, чем общие слова.Название: Re: Замена на массив Отправлено: sergek от Апрель 14, 2019, 19:10 Имхо, для начала надо бы, чтобы структура была абсолютно понятна вам самому. А уже потом пытаться донести ее смысл до юзверя. ... Кто ясно мыслит, тот ясно излагает? ))Название: Re: Замена на массив Отправлено: Day от Апрель 14, 2019, 19:14 Кто ясно мыслит, тот ясно излагает? )) Увы! Работы первоткрывателялей частенько неукюжи....Название: Re: Замена на массив Отправлено: Igors от Апрель 15, 2019, 07:22 Имхо, для начала надо бы, чтобы структура была абсолютно понятна вам самому. А уже потом пытаться донести ее смысл до юзверя. С понятностью самой структуры (эл-та массива) проблем нет, как для меня так и для юзверя. Ну захотел сделать объект красным - нажал color box. Захотел наложить текстуру - ну добавил файл/картинку. Что непонятного-то? Да, таких опций десятки, это нормально, материал везде развесистая штука. Кто ясно мыслит, тот ясно излагает? )) Часто под "ясностью" понимается "то что всем известно" и написано в букваре :) А когда это не так - начинаются претензии типа "Вы не умеете поставить задачу!" и.т.п.Название: Re: Замена на массив Отправлено: Racheengel от Апрель 29, 2019, 19:03 Скорее всего, нужно ввести понятие "наследованного цвета" и отображать его, как это (нередко) делается чем-то типа шахматной доски вместо сплошной заливки, где вместо черных клеточек - наследованный цвета.
По крайней мере юзеру будет сразу видно, что цвет "какой-то другой". Название: Re: Замена на массив Отправлено: Igors от Апрель 30, 2019, 12:24 Скорее всего, нужно ввести понятие "наследованного цвета" и отображать его, как это (нередко) делается чем-то типа шахматной доски вместо сплошной заливки, где вместо черных клеточек - наследованный цвета. Не очень понял что за "доска", ну детали не так уж важны, что-то придумать можно. Но это немалая возня с каждым типом контрола, а их десятка полтора. И да, сразу-то он увидит, но догнать "что это" без доки проблематично. А если так, то может и не ставить сверхзадач и удовлетвориться простым "общий параметр выделяется шрифтом и/или цветом".По крайней мере юзеру будет сразу видно, что цвет "какой-то другой". А вот что делать с текстурами? В UI они предъявляются как листбокс с именами файлов, при дабл-клике на айтем открывается окно текстуры (тоже немалое) |