Интерфейс Виды интерфейсов, способы реализации и требования к интерфейсу Определния интерфейса Посредник между программой и пользователем (оператором) Посредник между программистом и программным модулем Посредник между программой и аппаратными средствами Тема 14 Интерфейс 2 Виды пользовательского интерфейса Диалоговый Событийно-управляемый Текстовой Псевдографический Графический Сенсорный Тема 14 Интерфейс 3 Требования к интерфейсу Понятность Функциональность Удобство Простота Еще раз понятность: использование терминологии предметной области Расширяемость и модифицируемость Тема 14 Интерфейс 4 Пример с бортовым журналом Назначение Целевая группа операторов Понятие понятности Непроизводительные потери Лучший интерфейс Тема 14 Интерфейс 5 Психологические моменты Число Ингве Пример перегруженного интерфейса Не считайте пользователя за идиота! («помощник» не должен быть назойливым) Не считайте пользователя гениальным решателем ребусов Тема 14 Интерфейс 6 Принцип ТНЮС Настраиваемость интерфейса Встроенные языки (скрипт-языки) Центр управления Тема 14 Интерфейс 7 Метафоричность интерфейса Norton commander – раскрытая книга – две панели Tree – древовидная структура каталогов Windows – рабочий стол Медиа-проигрыватель Тема 14 Интерфейс 8 Вопросы реализации Наборы элементов управления (widgets) Callback Таймеры Специфика ввода информации (графические указатели, файлы, аппаратура) Тема 14 Интерфейс 9 Виджеты Athena 3D Motiff GTK+ QT Windows API FLTK Тема 14 Интерфейс 10 Оправданность объектноориентированного подхода Событийно-зависимый интерфейс Относительная независимость виджетов Необходимость инкапсуляции Необходимость наследования Тема 14 Интерфейс 11 Средства визуального проектирования интерфейса Visual C++ Delphi Borland C++ Builder Kylix QT designer FLTK Тема 14 Интерфейс 12 FLTK Fast ! Light ! Tool Kit ! FLUID – FLtk User Interface designer мобильность! размер имеет значение! Тема 14 Интерфейс 13 Установка FLTK В Linux В Visual C++ В Borland C++ builder компиляция как 1, 2, 3… configure make make install Тема 14 Интерфейс 14 Fluid: основное окно, bin, etc Тема 14 Интерфейс 15 Виджеты Кнопки Окна ввода и вывода текста Измерители Меню Средства рисования Интеграция с Open GL Работа со шрифтами Закладки Упаковки Открытость Тема 14 Интерфейс 16 Кнопки Простые Возврат Радио С подсветкой Форма и надписи (метки) Тема 14 Интерфейс 17 Измерители (Valuator) Слайдеры Роллеры Линейки прокрутки Счетчики Позиционер Окно ввода значений Тема 14 Интерфейс 18 Графика Примитивы Поли-линии Клиппирование Сложные элементы Шрифты Тема 14 Интерфейс 19 Механизм наследования Основные методы виджета Полиморфизм методов label, value, x, y, h, w и других Тема 14 Интерфейс 20 Обработка событий Метод callback Назначение обработчика событий Источники событий События по таймеру Программирование таймера Тема 14 Интерфейс 21 Пример использования Примитивный – одна кнопка # data file for the Fltk User Interface Designer (fluid)version 1.0105 header_name {.h} code_name {.cxx} decl {\#include <stdlib.h>} {} Function {} {open } { Fl_Window {} {open xywh {449 213 425 390} type Double visible } { Fl_Light_Button {} { callback {exit();} selected xywh {335 320 55 25} } } } Тема 14 Интерфейс 22 Сложный пример Класс cartesian для построения произвольных графиков функций в линейных, логарифмических и полулогарифмических координатах Тема 14 Интерфейс 23 Fluid – построитель интерфейсов Краткое введение во fluid Внутренний формат Процедура компиляции Строка компиляции Fluid как IDE Написание кода во fluid Тема 14 Интерфейс 24