В вычислениях , фокус указует на акт выбора элемента графического интерфейса пользователя . Текст, введенный с клавиатуры или вставленный из буфера обмена , отправляется компоненту, у которого есть фокус. Перемещение фокуса с определенного элемента пользовательского интерфейса называется событием размытия по отношению к этому элементу. Как правило, фокус снимается с элемента, отдавая фокус другому элементу. Это означает, что события фокуса и размытия обычно происходят практически одновременно, но в отношении разных элементов пользовательского интерфейса: один получает фокус, а другой размывается.
Концепция аналогична курсору в текстовой среде. Однако при рассмотрении графического интерфейса также задействован указатель мыши . Перемещение мыши обычно приводит к перемещению указателя мыши без изменения фокуса. Фокус обычно можно изменить, щелкнув компонент, который может получить фокус с помощью мыши. Многие рабочие столы также позволяют изменять фокус с помощью клавиатуры. По соглашению, Tab ↹клавиша используется для перемещения фокуса на следующий фокусируемый компонент и ⇧ Shift+Tab ↹ на предыдущий. Когда впервые появились графические интерфейсы, на многих компьютерах не было мышей, поэтому эта альтернатива была необходима. Эта функция облегчает жизнь людям, которым сложно пользоваться мышью.использовать пользовательский интерфейс. В определенных обстоятельствах для перемещения фокуса также можно использовать клавиши со стрелками .
Поведение фокуса на рабочем столе может регулироваться политиками в управлении окнами .
В большинстве основных пользовательских интерфейсов, например, созданных Microsoft и Apple , часто можно найти политику «фокус следует за щелчком» (или «щелкнуть для фокусировки»), где нужно щелкнуть мышью внутри окна для этого окна. чтобы сосредоточиться. Это также обычно приводит к тому, что окно поднимается над всеми другими окнами на экране. Если используется такая модель фокусировки , как эта, текущее окно приложения продолжает сохранять фокус и собирать ввод, даже если указатель мыши находится над окном другого приложения.
Другой распространенной политикой в системах Unix , использующих X Window System (X11), является политика «фокус следует за мышью» (или FFM), при которой фокус автоматически следует за текущим расположением указателя. Окно в фокусе не обязательно поднимается; его части могут оставаться под другими окнами. Оконные менеджеры с этой политикой обычно предлагают «автоподъем», который поднимает окно, когда оно сфокусировано, обычно после настраиваемой короткой задержки. Возможное следствие политики слежения за фокусом состоит в том, что ни одно окно не имеет фокуса, когда указатель перемещается над фоном без окна под ним; в противном случае фокус просто остается в последнем окне.
Модель sloppyfocus - это вариант модели followfocus. [1] Это позволяет продолжить сбор ввода последним окном в фокусе, когда указатель мыши отодвигается от любого окна, например, над строкой меню или областью рабочего стола.
Clickfocus | Followfocus | Небрежный фокус | |
---|---|---|---|
aewm [2] | Нет | да | Нет |
aewm ++ [3] | да | Нет | Нет |
AHWM [4] | да | Нет | да |
классно | да | да | да |
CTWM | да | да | да |
dwm [5] | да | да | Нет |
E16 | да | да | Да (по умолчанию) |
evilwm [6] | Нет | да | Нет |
FLWM | Нет | Нет | да |
Fluxbox | да | да | да |
FVWM [α] | да | Да (по умолчанию) | да |
IceWM [7] | да | да | да |
Кармен [8] | да | Нет | Нет |
lwm [9] | да | Нет | да |
TinyWM [10] | Нет | Нет | да |
Прихоть [11] | да | Нет | да |
WindowLab | Да (без автоподъема ) | Нет | Нет |
Xfwm | да | да | да |
Бормотать | да | да | да |
JWM | да | Нет | да |
MWM | да | Нет | Нет |
Отдельные компоненты окна также могут иметь центральное положение. Например, в пакете редактирования текста окно редактирования текста должно иметь фокус, чтобы можно было вводить текст. Когда текст вводится в компонент, он появляется в позиции текстового курсора, который также обычно можно перемещать с помощью указателя мыши.
Какой компонент должен иметь фокус по умолчанию и как фокус должен перемещаться между компонентами - сложные, но важные проблемы в дизайне пользовательского интерфейса. Фокусировка неправильной вещи означает, что пользователю приходится тратить время на перемещение фокуса. И наоборот, если сосредоточить внимание на правильных вещах, это может значительно улучшить пользовательский опыт.