Название: Slaves & Masters Отправлено: Igors от Июнь 08, 2010, 21:27 Добрый день
Пусть есть 10 (например) объектов типа "А". Пользователь может редактировать каждый из них индивидуально, выбирая его из списка, это нормально (и необходимо). Но есть потребность в "групповом" контроле, связка master - slave. Это выглядит примерно так: - пользователь определяет какой экземпляр объекта master и какие slave(s) для этого master'а - данные slave объекта игнорируются, вместо этого для работы/вычислений используются соответствующие данные master'а. Собственно говоря, для этого все и городится - пользователь редактирует экземпляр master - и все его slave(s) понимают эти изменения - просто для полноты картины (сути не меняет) - не очень эффективно делать весь slave копией всего master'а. Поэтому для slave есть выбор - какие параметры использовать "мастерские" а какие свои личные. Обычно это соответствует tab'кам в UI Теперь вопрос: как в UI ПОНЯТНО показать: "редактирование этого параметра не имеет эффекта т.к. он зависит от master'а". Это, конечно, не единственная, но, пожалуй, самая болезненная проблема в этой схеме/связке. Ну и общие замечания приветствуются, интересно услышать мнения уважаемых теоретиков по поводу такой конструкции, "изобретения велосипеда" и.т.п. :) Спасибо Название: Re: Slaves & Masters Отправлено: Авварон от Июнь 08, 2010, 21:59 залочить параметр и сделать его сереньким?
Название: Re: Slaves & Masters Отправлено: Kolobok от Июнь 08, 2010, 22:35 Насколько я знаю, существует две парадигмы дизайна. Первая - показывать все элементы управления, с запрещенными делать то, что Авварон написал. Вторая - скрывать эти элементы.
Название: Re: Slaves & Masters Отправлено: Igors от Июнь 09, 2010, 12:23 Задизаблить параметры - пользователи категорически против, да и самим, по правде говоря, не нравится. Непонятно/неинтуитвно ПОЧЕМУ. Обычно напр. пользователь выключил CheckBox и один или несколько EditText под ним становятся серыми - нормально, понятно. А тут надо переключиться на др. окно, там разорвать зависимость - вот тогда параметры станут доступны. Если человек пользуется программой впервые - как он догадается?
Скрывать параметры - никак не лучше. Они распределены в tab'ах равномерно, а после выключения может остаться 1-2 что выглядит очень странно. Были мысли как-то показать цветом, тоже не фонтан. UI получается "попугаистое" и так же непонятно как (откуда) этим управлять Название: Re: Slaves & Masters Отправлено: pastor от Июнь 09, 2010, 12:29 При попытке редактирования выдать сообщение с вопросом о разрыве всязи master - slave. Вслучае согласия пользователя применить изменения; в случае отказа проинформировать его, что редактирование запрещено.
Название: Re: Slaves & Masters Отправлено: Kolobok от Июнь 09, 2010, 17:04 Можно все унаследованные параметры засунуть в чекабельный QGroupBox. При снятии птички разрывать связь с master и включать контролы.
Название: Re: Slaves & Masters Отправлено: Igors от Июнь 11, 2010, 13:57 Добрый день
Вариант Pastor'а полностью решает проблему "понятливости" но есть опасения что он может оказаться "навязчивым" и потребуется это предупреждение как-то включать/выключать. Плюс надо добавить такой фильтр для многих (почти всех) типов контролов. Вариант Колобка, на мой взгляд, лучший. Правда, собрать все зависимые параметры в группы не удастся, они уже собраны по ф-циональности. Но это и не требуется, главное чтобы чекбокс и параметры которые он enable/disable были одновременно видимы (был feedback). Такая возможность есть - поместить этот чекбокс вне всех tab'ов. Спасибо за обсуждение |