Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СПО_пособие_1часть.doc
Скачиваний:
17
Добавлен:
20.09.2019
Размер:
5.81 Mб
Скачать

7.5. Интерфейс пользователя

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

Изучение программы, по сути дела, сводится к изучению ее интерфейса. Интерфейс программ формируется из тех элементов, которые предоставляют система программирования и операционная система. Например, MS DOS работает в текстовом режиме и не поддерживает мышь, поэтому основным типом интерфейса является называемая командная строка. Разработчикам ПО MS DOS не предоставляли графические средства для построения меню, элементов управления и т. д., поэтому программисты вынуждены были сами вести разработку подобных элементов интерфейса, что приводит к большим накладным расходам при программировании и к появлению огромного количества разномастных элементов интерфейса, не всегда одинаково функционирующих. В современных операционных системах элементы интерфейса поддерживаются самими системами.

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

Вид интерфейса взаимодействия пользователя с ОС исторически определялся возможностями технических средств общения пользователя с системой.

Изначально пользователь общался с системой, вводя в командную строку консоли информацию по принципу «приглашение/вопрос – ввод – обработка – ответ». С развитием операционных систем были разработаны графические интерфейсы, представляющие собой надстройки над операционными системами.

В Windows такая надстройка, называемая также графической средой, является неотъемлемой частью ОС. Она реализуется с помощью драйвера видеосистемы, функций интерфейса графических устройств (GDI) и графического интерфейса пользователя (GUI).

В UNIX-подобных системах (UNIX , Linux) графический интерфейс строится основе стандарта X Window System. Система X Window построена на модели «клиент/сервер». Основой подсистемы является так называемый Х-сервер, который работает на компьютере пользователя и обеспечивает вывод изображения на экран монитора, а также ввод данных от пользователя (через клавиатуру, мышь и т. п.). Приложения выступают в роли клиентов. Для общения с сервером клиентам предоставляется библиотека XLib, содержащая функции низкоуровневого взаимодействия.

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

Пользовательский интерфейс приложений

В каждом Windows-приложении реализация графического пользовательского интерфейса составляет большую часть ее программного кода. При работе с приложениями обращает на себя внимание стандартизация интерфейса. Во-первых, все окна имеют рамку, которая определяет их границы; рамка используется также для изменения размеров окна. В верхнем левом углу окна находится значок системного меню. Щелчок мыши на этот значок открывает системное меню. Справа от значка системного меню находится заголовок окна. В правом верхнем углу окна расположены кнопки минимизации, полноэкранной развертки (полноэкранного представления) и закрытия окна. Ниже находится рабочая область – это часть окна, в которой отображается выполнение программы. Стандартными элементами пользовательского интерфейса стали главное меню програм­мы, контекстные меню, горячие клавиши, панели инструментов, строка состояния, вертикальные и горизонтальные линейки прокрутки, различные элементы управления и т. д.

Современные визуальные среды программирования предлагают десятки (или сотни) элементов управления. Поскольку эти элементы встречаются почти во всех Windows-приложениях, то знакомство с этими элементами, их назначением и способами управления является важной задачей. К наиболее часто используемым стандартным и общим элементам уп­равления относятся кнопки, флажки, переключатели, окна ввода, списки, полосы прокрутки, окна открытия файлов, инструменты, закладки (страницы), подсказки и другие.

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

Архитектура, управляемая событиями

Появление элементов управления стало возможным благодаря реализации новой архитектуры взаимодействия пользователя с программой. Во многих операционных системах (MS DOS, UNIX) взаимодействие с пользователем инициирует программа пользователя

Изначально интерфейс пользователя в консольных приложениях имел структуру «приглашение или опрос – ожидание ввода – ввод – обработка – вывод результата». При такой архитектуре взаимодействия программа управляет пользователем. Ранее эта архитектура была вполне приемлемой, пока не появилось множество источников информации, отличных от клавиатуры. Например, теперь благодаря наличию мыши пользователь по своему усмотрению может выбрать требуемую команду меню или нажать какую-либо кнопку, щелкнуть на значке панели управления, ввести текст или, в конце концов, нажать до­пустимую комбинацию клавиш. Для реализации такого сценария консольные приложения не годятся. Нужна другая архитектура, в которой пользователь управляет программой, а последняя всегда готова обрабатывать ввод из любых источников информации. Именно подобное взаимодействие и реализовано в Windows.

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

Описанная выше и реализованная в Windows схема взаимодействия пользователя, операционной системы и приложения называется архитектурой, управляемой событиями.