Программирование на C++ глазами хакера


Диалоговые окна


Отдельного разговора заслуживают диалоговые окна. С их помощью пользователи вводят информацию в программу и получают ответы. Если что-то окажется неудобным или раздражающим, то щелчок по uninstall.exe не заставит себя ждать. К дизайну каждого элемента нужно подходить с особой тщательностью.

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

 Диалоговые окна

Рис. 1.15. Окно "О программе" в The Bat!

Это окно оформлено нестандартно, красиво, но с большой ошибкой — даже в окне "О программе" должна быть кнопка Закрыть или , потому что трудно догадаться, что форма закрывается только по щелчку в определенной области.

Каким должно быть диалоговое окно? Однозначно прямоугольным и, желательно, чтобы ширина окна была больше высоты. Такие окна воспринимаются лучше, потому что мы привыкли воспринимать все в горизонтальной плоскости. Мы смотрим широкоэкранное кино, и у монитора ширина больше высоты, потому что это привычней и удобнее. Именно поэтому широкие окна намного проще сделать приятными на ощупь и на вкус.

Посмотрите на окно создания резервной копии в программе The Bat! ( 1.16). Оно по вертикали больше, и из-за этого смотрится не очень хорошо. Я понимаю, что разработчики постарались встроить максимум возможностей, но само окно и неровности в компонентах немного раздражают.

Помимо этого, последний компонент выбора (Check Box) отодвинут вправо. Все элементы должны быть выровнены по левому краю, а прыжки вправо нарушают симметрию. Если компоненты находятся в определенной зависимости, то лучше просто запрещать доступ к некоторым из них, используя свойство Enable.

 Диалоговые окна

1.16. Окно создания резервной копии в The Bat!, вытянутое по вертикали

Единственное, что здесь хорошо сделано — все компоненты удачно сгруппированы. Элементы выбора Check Box собраны В одну группу, a Radio Button — в другую.


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

Если нужно отображать свойства какого-то объекта (документа, файла), то его желательно делать вытянутым по вертикали. Это исключение из правил, которое надо запомнить, и ему, желательно, следовать всегда.

 Диалоговые окна


Рис. 1.17. Окно создания резервной копии в The Bat! после небольших манипуляций

 Диалоговые окна


1.18. Окно для отображения свойств

Всю информацию нужно разложить по тематическим разделам в виде отдельных вкладок. Ярким примером такого окна является окно свойств в проводнике Windows ( 1.18) или окна свойств документа в MS Word (меню Файл/Свойства).

Ни один объект не может обладать таким количеством свойств, что их нельзя было бы поместить в четыре вкладки такого окна. Если у вас свойств получилось больше, и невозможно все уместить, то пора заняться оптимизацией информации. Подумайте, что для пользователя действительно будет информативно, а что можно удалить.

Если в программе много параметров, то можно соорудить что-то а-ля MS Word (меню Сервис/Параметры) из множества вкладок ( 1.19). Если настроек слишком много, то используем стиль Netscape Navigator, где слева построено дерево разделов, и при выборе нужного пункта в центре окна отображаются соответствующие параметры.

 Диалоговые окна


1.19. Окно для настройки параметров

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

Посмотрите на 1.20, где показано окно настроек программы mIRC. Оно смотрится просто ужасно. Дерево разделов слишком узкое, окно недостаточно широкое, элементы управления в разделах не упорядочены и содержат абсолютно ненужные кнопки, которые можно куда-нибудь вынести. Кнопка Sort отделена от других и пропадает в бездне, а раскрывающиеся списки имеют разную длину.



 Диалоговые окна


Рис. 1.20. Окно свойств mIRC

Теперь посмотрите на 1.21, где я немного причесал это окно в графическом редакторе MS Paint. Теперь оно стало более широким, и элементы встали стройными рядами, потому что выровнены по левому краю и имеют одинаковую ширину. Кнопка с изображением солнца не имела подсказки, и ее предназначение вообще не понятно (просто перебрасывает нас на настройки раздела Connect), поэтому была удалена.

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

 Диалоговые окна


Рис. 1.21. Улучшенное окно свойств mIRC

 Диалоговые окна


1.22. Перегруженный интерфейс Feurio

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

Я вспоминаю, как однажды описывал программу Feurio для журнала "Хакер", которая была мощнейшей для записи музыкальных дисков. Пришлось потратить неделю на разборки с интерфейсом, а вывод был один — программа обладает большими возможностями и должна присутствовать в арсенале любого меломана. Но я не до такой степени страстный любитель музыки, чтобы мириться с неудобствами ( 1.22). Лучше использовать простой, но удобный WinOnCD, чем мощный, но некрасивый Feurio. Вот если бы я писал диски каждый день, то, может быть, использовал что-то сложное.

Помните, если не знаете, как что-то сделать, посмотрите у конкурентов!!!

 Диалоговые окна
 Диалоговые окна

Содержание раздела