Как реализовать (в пользовательском интерфейсе) кнопку - PullRequest
1 голос
/ 19 ноября 2008

Я проектирую (G) пользовательский интерфейс программы и наткнулся на проблему; Программа преобразует число в различные единицы, и преобразование единицы измерения было:

[Имя объекта (при нажатии дает информацию)] [Особый статус, если есть] [Вывод в текстовое поле, которое также можно использовать для ввода (для преобразования в другие единицы)]

Я хочу, чтобы пользователь мог копировать выходной номер в буфер обмена, без необходимости возиться с выделением и поиском нужных кнопок для нажатия. Итак, я подумал, что я сделаю кнопку после поля для вывода текста, говоря что-то вроде «C» или «Копировать».

Но вчера я читал на joelonsoftware.com и обнаружил, что пользователи кажутся неуклюжими. Так что мне делать?

Я думал о нескольких разных вариантах:

  1. Нажмите на текстовое поле, чтобы скопировать в буфер обмена - НО: я хочу использовать его и для ввода
  2. Нажатие цифры на клавиатуре для копирования соответствующей - НО: вероятно, будет больше 10, и они мне нужны для нового ввода
  3. Большая кнопка Копировать, как на том, что на самом деле говорит "Копировать" - Хм, это сработает? Я знаю, что мне нравится использовать клавиатуру, когда я могу, поэтому было бы неплохо найти решение этой проблемы.
  4. Каждое подразделение будет иметь свое собственное пространство, в которое помещается все (имя, текстовое поле и т. Д.). Что если он будет скопирован в буфер обмена при щелчке в любом месте этого пространства, кроме имени или текстового поля. - НО: что если вы пропустите, то есть щелкнуть мышью под одним текстовым полем и щелкнуть над другим?
  5. Но как насчет выделения пространства отряда, пока я шел? - Может все еще означать неприятности ...

Что ты думаешь? Я думаю, что я мог бы выбрать # 3 - Большая кнопка копирования ..

Ответы [ 5 ]

1 голос
/ 19 октября 2009

Нет ничего плохого в кнопке Копировать после каждого поля, если вы чувствуете, что это будет очень распространенная операция.

Два предложения, однако:

  1. С точки зрения внешнего вида, убедитесь, что кнопка четко связана с полем. Для текстового поля лучший способ сделать это - поместить кнопку «Копировать» в текстовое поле (справа - но будьте готовы обрабатывать языки RTL, меняя их положение по мере необходимости!).

  2. Чтобы не сделать его слишком большим, не используйте какой-либо текст, а вместо этого используйте стандартный значок Windows для копирования (например, этот: image) и поместите текст в подсказку. Если вы сделаете это, вы также можете полностью избавиться от границы кнопки, еще больше уменьшив ее размер, хотя вам все еще нужен визуальный индикатор при наведении, чтобы прояснить, что это активный элемент пользовательского интерфейса. На самом деле, вы можете скопировать пользовательский интерфейс Vista / Win7 Explorer (также замеченный в IE7 / 8) для поля местоположения и значка перезагрузки в нем.

0 голосов
/ 19 октября 2009

Что бы вы ни делали, важно использовать стандартные привязки событий клавиатуры и мыши в ОС, а также предпочтительный внешний вид, иначе пользователи могут запутаться.

0 голосов
/ 19 ноября 2008

Я думаю, что решение № 3 является лучшим в вашем списке, но я хотел бы увидеть набросок вашего графического интерфейса.

0 голосов
/ 20 ноября 2008

Для максимальной скорости клавиатура - путь. Как насчет букв A-Z, чтобы вместо этого скопировать текстовые поля? Пропустите «E», чтобы ввести научную запись. Потенциальная скорость высока, но обучаемость низкая. Я ожидаю, что пользователям будет трудно разобраться в этом пользовательском интерфейсе даже с пояснительным текстом на странице / в окне, и если пользователям придется читать пояснительный текст, то это займет время, скорее всего, сведет на нет экономию времени пользовательского интерфейса, если только пользователь использует приложение все время (Джоэл также правильно пишет, что пользователи ненавидят читать).

Для приложения, которое будет использоваться только изредка, большая кнопка - лучший выбор, чем больше, тем лучше, как и предсказывает закон Фиттса. И абсолютно пометьте его «Копировать», а не «С» и не значок, чтобы максимизировать обучаемость. Ваши другие идеи имеют проблемы с обучаемостью и толерантностью без скорости клавиатуры.

Тем не менее, я думаю, вы слишком далеко зашли о том, что говорит Джоэл. Конечно, вы хотите исключить ненужные клики, но типичный дизайн для этого типа приложения потребует одного клика по текстовому полю (который должен по умолчанию выделять все значение), а затем один клик по пункту меню Копировать - или лучше, Alt- C или Ctrl-C с клавиатуры. Мне трудно представить себе задачу, в которой сохранение одного нажатия или пары нажатий на клавиатуре стоило бы загромождать целый ряд кнопок копирования рядом с текстовыми полями. У вас также будут кнопки Paste и Clear? В какой-то момент беспорядок замедлит ваших пользователей больше, чем дополнительный щелчок.

Как часто пользователи будут копировать? Если это действительно десятки раз за сеанс, то вам следует переосмыслить весь подход к проектированию, потому что любое копирование и вставка по одному номеру за раз станет утомительным. Возможно, вам следует поддерживать пакетную обработку, принимая сразу несколько чисел и выводя результаты в форме, уже подходящей для ожидаемого использования. Может быть, он работает в других приложениях, как это делает Enso: пользователь выделяет число в любом документе или текстовом поле любого приложения, команды Convert - Feet - Meters, и оно изменяется в документе или поле.

0 голосов
/ 19 ноября 2008

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

Есть ли проблема с копированием всего, что находится в текстовом поле, когда они нажимают на него? Так что, если он используется для ввода? Они просто собираются скопировать необходимое им значение после они вводят значения в.

Вы также можете иметь копию ctrl-click или shift-click в текстовом поле.

Большинство людей знают, как копировать текст на свой компьютер. Возможно, лучшее решение - просто выделить весь текст в текстовом поле, когда оно будет сфокусировано, чтобы они могли просто скопировать или начать печатать, нажав Ctrl-C, чтобы начать ввод.

...