Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Литература / photon_old.doc
Скачиваний:
40
Добавлен:
02.04.2015
Размер:
7.88 Mб
Скачать
    1. Урок 3. Создание меню и панелей меню

Этот урок проведёт Вас шаг за шагом по пути создания меню и панелей меню.

      1. О присоединении ответных реакций

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

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

В некоторых window-образных приложениях Вы можете прикрепить к ответным реакциям виджетов только функции в виде кодов. Но когда Вы используете PhAB для создания ответной реакции, Вы можете сделать на шаг больше и прикрепить целые окна, диалоги, меню и многое другое. Это та расширенная функциональность, которую мы называем присоединением ответной реакции.

PhAB предоставляет два основных типа присоединения ответной реакции:

  • Модульный тип присоединения ответной реакции

Прикрепление модуля приложения (такого, как окно, диалог или меню) к любой ответной реакции виджета. Модуль открывается каждый раз, когда встречается состояние ответной реакции. На этом уроке Вы присоедините модуль меню к ответной реакции кнопки "Arm".

  • Кодовый тип присоединения ответной реакции.

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

      1. Об именах экземпляров

Для доступа к виджету из кода Вашего приложения Вы должны прежде всего присвоить виджету имя экземпляра. Поскольку все имена экземпляров виджета находятся в одном глобальном пространстве имён, внутри приложения не может быть двух виджетов, имеющих одно и то же имя экземпляра.

Мы рекомендуем Вам начинать каждое имя экземпляра с префикса модуля. Например, Ваше базовое окно имеет виджет PtButton, который содержит текст "Blue" в качестве метки, Вы можете дать этому виджету имя экземпляра base_blue (а лично я – так и вообще бы Base_Button_Blue. Прим. пер., любящего длинные названия).

 Принятие соглашения по именам для Ваших виджетов сделает проще Вашу работу с большими приложениями.

      1. Создание панели меню

Чтобы научиться привязывать ответные реакции, давайте создадим два функционирующих меню – "File" и "Help" – которые Вы сможете потом включить в ваши собственные приложения.

В PhAB'е меню делаются из двух кусков:

  1. кнопки меню, которой Вы щёлкните, чтобы отобразить меню;

  2. модуля меню, который содержит пункты меню.

Используя привязывание ответных реакций, Вы свяжете модули меню с кнопками "File" и "Help" на панели меню. Вы также свяжете ответную реакцию кодового типа с пунктом меню "Quit" в модуле меню "File". Эта ответная реакция позволяет пункту "Quit" закрывать приложение.

  1. Из меню "File" PhAB выберите пункт "New" для запуска нового приложения. Выберите стиль "Plain Window".

  2. Сохраните приложение как tut3 (По информации о сохранении Вашего приложения см. предыдущий урок или раздел "Сохранение приложения" в главе "Работа с приложениями").

  3. Выберите из палитры виджетов виджет PtMenuBar, укажите на верхний левый угол панели основного окна, и протащите мышку, чтобы панель меню стала в ширину окна. Панель меню увеличивается и уменьшается при изменении ширины окна и всегда располагается вверху окна. Вы можете видеть это, щёлкнув на панели заголовка окна и изменяя его размеры при перетаскивании одной из его меток-манипуляторов изменения размеров.

 Если Вы случайно щёлкнули на кнопке "Test" на правом конце панели заголовка модуля, окно не будет изменять размеры или принимать новые виджеты. Если это случилось, просто щёлкните ещё раз на кнопку "Test".

После того, как Вы завершите следующее действие, панель меню будет выглядеть таким образом:

  1. Разместите виджет PtMenButton на только что созданной Вами панели меню. Кнопка меню автоматически центрируется по вертикали на панели меню.

  2. Перейдите на панель управления ресурсами и щёлкните на имени экземпляра виджета сразу после имени класса. Измените имя экземпляра кнопки на base_file:

  1. Измените ресурс "Label Text" кнопки на "File".

  2. Разместите другой виджет PtMenuButton следом за первым. Измените имя экземпляра на base_help и текст на "Help".

Соседние файлы в папке Литература