Вход/Регистрация
Программирование. Принципы и практика использования C++ Исправленное издание
вернуться

Страуструп Бьерн

Шрифт:

• Использовать библиотеку графического пользовательского интерфейса. Именно это мы делаем, когда хотим, чтобы взаимодействие пользователя с программой осуществлялось посредством манипулирования объектами на экране (указание, щелчки, перетаскивание и опускание, зависание и т.д.). Часто (но не всегда) этот стиль связан с интенсивным отображением графической информации на экране. Любой пользователь современных компьютеров может привести такие примеры. Любой пользователь, желающий “почувствовать” стиль приложения операционных систем Windows/Mac, должен использовать графический пользовательский интерфейс.

• Использовать интерфейс веб-браузера. В этом случае потребуются язык разметки (markup language), такой как HTML, а также язык сценариев (scripting language). Эта тема выходит за рамки рассмотрения нашей книги, но для приложений с удаленным доступом именно такой выбор часто оказывается самым удачным. В этом случае взаимодействие пользователя с программой также носит текстовый характер (на основе потоков символов). Браузер — это средство графического пользовательского интерфейса, которое переводит текст в графические элементы, транслирует щелчки мышью и другие действия пользователя в текстовые данные и отправляет их обратно программе.

Многие люди считают использование графического пользовательского интерфейса сущностью современного программирования, а взаимодействие с объектами на экране — его основной целью. Мы с этим не согласны: графический пользовательский интерфейс — это разновидность ввода-вывода, а отделение основной логики приложения от системы ввода-вывода является одним из основных принципов разработки программного обеспечения. При любой возможности мы предпочитаем провести четкую границу между основной логикой программы и той ее частью, которая осуществляет ввод и вывод. Такое отделение позволяет изменять способ взаимодействия с пользователем, переносить программу в другие операционные системы и, что еще боле важно, размышлять о логике программы и способах ее взаимодействия с пользователем независимо друг от друга.

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

16.2. Кнопка Next

Зачем мы предусмотрели кнопку Next, которая использовалась для управления графическими примерами в главах 12–15? В этих примерах фигуры рисовались после нажатия клавиши. Очевидно, что это простая форма программирования графического пользовательского интерфейса. Фактически она настолько проста, что некоторые люди могут сказать, что это ненастоящий графический пользовательский интерфейс. Однако посмотрим, как это было сделано, поскольку это приведет нас прямо к тому виду программирования, которое все признали как программирование графического пользовательского интерфейса.

Наш код в главах 12–15 был устроен примерно так:

// создаем объекты и/или манипулируем ими,

// изображаем их в объекте win класса Window

win.wait_for_button;

// создаем объекты и/или манипулируем ими,

// изображаем их в объекте win класса Window

win.wait_for_button;

// создаем объекты и/или манипулируем ими,

// изображаем их в объекте win класса Window

win.wait_for_button;

Каждый раз, достигая вызова функции

wait_for_button
, мы могли видеть наши объекты на экране, пока не щелкали на кнопке, чтобы получить результаты работы другой части программы. С точки зрения программной логики этот код ничем не отличается от программы, записывающей строки текста на экране (в окне консоли), останавливающейся и ожидающей ввода данных с клавиатуры. Рассмотрим пример.

// определяем переменные и/или вычисляем значения, вырабатываем

// результаты

cin >> var; // ожидаем ввода

// определяем переменные и/или вычисляем значения, вырабатываем

// результаты

cin >> var; // ожидаем ввода

// определяем переменные и/или вычисляем значения, вырабатываем

// результаты

cin >> var; // ожидаем ввода

С точки зрения реализации эти два вида программы совершенно отличаются друг от друга. Когда программа выполняет инструкцию

cin>>var
, она останавливается и ждет, пока система не вернет символы, которые ввел пользователь. Однако система графического пользовательского интерфейса, управляющая экраном и отслеживающая вашу работу с мышью, следует другой модели: она определяет, где находится курсор мыши и что пользователь с нею делает (щелкает и т.д.). Если ваша программа ожидает каких-то действий, то она должна делать следующее.

  • Читать дальше
  • 1
  • ...
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: