LINUX.ORG.RU
ГолосованияГолосования (не подтверждено)

Какой стиль GUI-настроек по вашему правильный?

 


0

1

Лично я за ОК, потому что очень легко отменить. Особенно ценно когда настриваешь прогу где куча опций и случайно тыкнул не туда и не заметил это, но прекрасно осознаешь что это случилось.

И крайне интересно - почему авторы этих подходов что настройки применяются без ОК - не видят этого сценария и не уж то им кажется что наличие кнопок ОК/ОТМЕНА сильно перегрузит их GUI и сделает его архаичным что ли?

★★★★★

Последнее исправление: hobbit (всего исправлений: 2)

Смотря что за настройки.

  • Если это, например, настройки Proxy или ещё чего-то связанного с сетевым подключением, включая различные ограничения и тому подобное — я однозначно за «OK». Сперва хочется полностью всё натыкать, чтоб одно с другим вместе имело смысл, а потом уже применить.
  • Если это настроки внешнего вида, вроде размера шрифта, то приятнее видеть изменение сразу, когда двигаешь ползунок, чтоб не тыкать Apply 100500 раз, пока подгоняешь.

В любом случае, если есть «OK» и «Cancel», обязательно должна быть кнопка «Apply», которая применяет настройки, но не закрывает окошко с ними. Если её нет, это может довольно сильно раздражать.

В целом я в большинстве случаев за «OK», но с исключением для настроек внешнего вида.

P.S. Громкости ещё, помимо внешнего вида. Громкость точно должна именно в реальном времени регулироваться, потому что так уж устроен наш мозг, что по циферкам довольно сложно оценить, чего ты хочешь (за исключением совсем натренированных звуковиков наверное), надо сразу слышать обратную связь. Даже в AlsaMixer всё регулируется и применяется сразу, без подтверждения, и это правильно.

P.P.S. А ещё иногда бывает проще закрыть программу, открыть конфиг в текстовом редакторе и там исправить. Даже если такое не особо предполагается разработчиком, и конфиг в каком-нибудь зубодробительном XML, бывает так, что в итоге удобнее.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 4)
Ответ на: комментарий от CrX

Если это настроки внешнего вида, вроде размера шрифта, то приятнее видеть изменение сразу, когда двигаешь ползунок, чтоб не тыкать Apply 100500 раз, пока подгоняешь

Это решается добавлением третьей кнопки, «Применить». Много где есть, удобно.

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Это решается добавлением третьей кнопки, «Применить». Много где есть, удобно.

В принципе да (я упомянул её важность в следующем абзаце). Ещё как вариант это можно решить небольшой превьюшкой прямо под соответствующим пунктом меню. Помимо кнопки «Применить», само собой. Она в принципе всегда мастхэв.

Впрочем, как минимум громкость точно должна сразу регулироваться. Даже с «Применить» уже неудобно.

CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 2)
Ответ на: комментарий от CrX

Согласен. Но я бы расширил тогда, для тех случаев где размер шрифта и прочее - где реально выгоднее не иметь кнопки вида OK/Применить/Отмана - а применять сразу - чтобы была где-нибудь сверху в углу кнопочка отмены всех изменений за сессию.

Которая работает так: она сохраняет в памяти все настройки которые были на момент открытия настроек - и можно тыкать куда угодно но если что не понравится нажатием на эту конпку все возвращается на как было.

Ктати такое есть в systemsettings из KDE, но к сожаланию вроде как только там, а ведь такой подход можно было применять шире.

В общем да - в идеалне сложные настройки - с ок/отмена а настройки внешнего вида без ок/отмена но с возможнотью отката всего что было натыкано с момента появления окна настроек.

bonta ★★★★★
() автор топика

нажал на флажок или радио-кнопку и настройка применена

Это так во многих программах (даже с TUI), для предпросмотра изменений «на лету». Тут «Отмена» и полезна.

dataman ★★★★★
()

Автоприменение настроек осуждаю. Это и неудобства с их отменой создаёт и просто запутывает - сходу непонятно сохранились они или нет.

firkax ★★★★★
()

Никакой, вернее оба. В графическом интерфейсе в зависимости от контекста действия должны быть

  • Мгновенная реакция

    • автоматическая
      • на каждое изменение
    • ручное активирование
      • на каждое изменение
      • на множественное изменение
  • Отложенная реакция

    • в зависимости от умолчания
      • с предупреждением по выходу из интерфейса настроек
        • выход без явного применения настроек - откат
      • без предупреждения с обязательным ручным применением
        • выход без явного применения настроек - откат
  • Возврат части значений на значения по умолчанию

  • Отображение изменённых частей через визуальное тегирование

  • Подписи указывающие на состояния по умолчанию для ориентирования

Всё это и даже больше надо принять во внимание и хорошенько подумать, в каких случаях что применять, при этом не допустить чтобы везде всё было слишком по разному, найти баланс, чтобы человеком воспринималось естественно, для него было логично, почему вот это вот так. И подходяще, не стремиться делать всё абсолютно одинаково.

почему авторы этих подходов что настройки применяются без ОК

Создание графического интерфейса типа, накидать контролов чтобы просто они были, это одно. Проектирование графического интерфейса это другое.

наличие кнопок ОК/ОТМЕНА сильно перегрузит их GUI

Когда ты просто накидываешь интерфейс, у тебя чаще ситуация когда есть некий вызов типа onclick, по нажатию и всё и обычно туда суют просто непосредственно прямое действие. Для ОК/ОТМЕНА, тебе как разработчику надо явно, навешать колбеки которые изменят состояние некой структуры/конфига и только по нажатию ОК, запуститься обход конфигурации, её проверка (бывают же ещё всякие взаимоисключающие штуки) и последовательное применение, а на ОТМЕНА, надо за ранее обеспокоиться и при входе в настройки считать все текущие параметры, сделать копию, и затем поменять местами всё. Короче сделать типа в лоб button_on_click("makeit",makeit_callback) и готово проще, чем тоже самое но button_on_click("makeit",makeit_callback_toggle) затем

button_on_click("ok",ok_handler)
{
   check_options(config);
   if config.opt1 ~= config_back.opt1
   {
      opt1_handler(config.opt1);
   }
   ...
}
...

И пошло поехало. Тут совершенно два разных подхода.

  • Прямое действие, если нужны проверки делаются на месте
  • Отложенное действие, проверки до действия, действие не выполняется а сохраняется в виде конфигурации с последующим явным применением.

Тупо надо совершенно другой код писать, первое сделать проще, вот и всё. Ну и зачастую работает надёжнее.

LINUX-ORG-RU ★★★★★
()

Скорее Настройки не применятся пока не нажал ОК, но вообще зависит. В обычных приложениях хочу с подтверждением, в видеоиграх - немедленное применение для большинства, но подтверждение для некоторых (разрешение экрана, инпуты итд).

Вообще можно было бы на этом остановиться, но я понимаю, откуда ТС шагает: в последние годы наступило засилье интерфейсов, в которых опции применяются немедленно при вводе, нередко - там, где так точно делать не надо.

Скорее всего этот антипаттерн пришёл из дизайнов графических интерфейсов на мобилах. Нашли балбесы, откуда воровать идеи.

Bfgeshka ★★★★★
()
Ответ на: комментарий от Bfgeshka

Нашли балбесы, откуда воровать идеи.

Согласен!

hobbit ★★★★★
()

Настройки не применятся, пока не нажал ОК или отдельную кнопку Применить

Просто так привычнее.

Zhbert ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)