Russian Qt Forum

Qt => Общие вопросы => Тема начата: Igors от Июнь 08, 2010, 21:27



Название: 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'ов.

Спасибо за обсуждение