AppBuilder (1037668), страница 3

Файл №1037668 AppBuilder (Раздаточные материалы) 3 страницаAppBuilder (1037668) страница 32017-12-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

3. Размещаем PtMenuButton виджет в строку меню, которую Вы только что создали. Кнопка меню автоматически центрируется вертикально в строке меню.

4. Идем в панель управления Ресурсов и нажимают имя образца виджета только ниже имени класса. Измените имя экземпляра кнопки, чтобы идентифицировать файл:

5. Изменяем ресурс кнопки Label Text с Label на File.

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

Создание модуля меню File

Теперь, когда Вы имеете кнопки меню, Вы должны создать ваши модули меню. Давайте начнем с модуля меню File.

1. Выберем Project>Add Menu. Появляется новый модуль меню.

2. Изменяем имя меню с Menu0 на filemenu:

Добавление пунктов меню

Теперь добавляем несколько пунктов в меню File. Если Вы нажимаете другой модуль, модуль меню отмечается как выбранный, что означает, что Вы не можете воздействовать на предыдущий. Чтобы переназначать модуль меню, нажмите его строку заголовка.

1. Нажимаем ресурс Menu Items в панели управления Ресурсов. Вы увидите редактор меню:

Если Вы посмотрите на список Menu Items, Вы увидете, что выбран пункт <New>. Этот специальный пункт позволяет Вам добавлять новые пункты подменю к вашему меню.

2. Чтобы добавить ваш первый пункт меню — который также, назван "New" - нажимаем поле Item Text, затем напечатали New.

3. Теперь даем пункту имя экземпляра виджета. В поле Inst Name, напечатайте file_new.

4. Щелкнем Apply, чтобы добавить пункт к меню. Вы увидеть имя пункта в списке Menu Items с префиксом CMD. Префикс CMD , означает, что это пункт команды, то есть пункт, который вызывает PhAB callback вызов.

5. Повторим, вышеупомянутые шаги, чтобы создать еще два пункта меню Save и Save As…. Дайте этим пунктам, имена, file_save и file_as.

6. До сих пор, Вы добавляли пункты меню командного типа. Теперь добавим пункт типа разделителя. Нажмем на кнопку Separator около правого верхнего угла.

7. Щелкнем Apply, чтобы получить заданный по умолчанию стиль разделителя, который изображен.

8. Теперь добавим пункт Quit. Нажмем командную кнопку, затем определим Quit как текст пункта и file_quit как имя обработчика.

9. Закончим пока с этим модулем меню, нажав на Done. Модуль отображает пункты, которые Вы только что создали:

10. Давайте сохраним этот модуль и займемся следующей задачей. Для этого нажмите кнопку свертывания окна модуля (левая кнопка в правой стороне области заголовка), или выберите кнопку меню Work (левый верхний угол) и выберите Minimize.

Создание модуля Help

Используя полученные навыки создания модуля меню, сделаем следующее:

1. Создаим ваш модуль Help и дадим ему имя helpmenu.

2. В этом модуле, разместите единственный пункт команды по имени About Demo и дадим ему имя Help_about. Когда Вы закончите, сверните модуль. Если один из ваших модулей меню, "исчезает" (Вы, возможно, случайно закрыли его или поместили позади другого модуля), просто надо вернуть модуль в пункте главного меню Viev.

Присоединение callback вызовов

Давайте вернемся к кнопкам меню, которые Вы создавали ранее и прикрепим callback вызовы так, чтобы кнопки могли вызывать ваши модули меню.

Присоединение callback вызова типа модуля

1. Выбираем кнопку меню File, затем переключаемся к панели управления callback вызовов. Вы увидите список callback вызовов кнопки File:

2. Чтобы модуль меню File выскакивал, когда Вы нажимаете кнопку File, Вы должны прикрепить callback вызов Arm к кнопке. Прикрепляя callback вызов Arm, Вы можете открыть меню, используя или «щелчок-перемещение-щелчок», или « нажатие- перетаскивание-отпускание» (click-move-click or press-drag-release).

Нажмите Arm, чтобы вывести редактор callback вызовов.

3. Область Module Types редактора позволяет Вам выбирать тип модуля, с которым Вы желаете связаться. Поскольку Вы хотите связать кнопку File с модулем меню, нажмите Menu. 4. Нажимаем список Name и печатаем filemenu (или выберем filemenu от списка), который является именем, которое Вы дали вашему модулю меню File. Это связывает кнопку меню с этим модулем. Вы можете также выбрать filemenu из всплывающего списка доступных модулей. Чтобы отобразить список, нажмите значок справа от поля Name.

5. Щелкнем Apply, чтобы добавить callback, затем нажимаем Done, чтобы закрыть редактор callback вызовов.

6. Повторим вышеупомянутые шаги, чтобы связать кнопку меню Help с модулем меню Help.

Присоединение callback вызова типа кода

Давайте теперь прикрепим callback вызов типа кода к пункту Quit из меню File так, чтобы он мог завершать работу приложения.

1. Дважды щелкаем иконку модуля filemenu. Она открывает и выбирает модуль.

2. Переключаемся в панель управления Ресурсов, затем нажимаем ресурс Menu Items.

3. Выбираем пункт Quit из списка пунктов меню.

4. Нажимаем значок рядом с полем Callback, чтобы открыть редактор callback вызовов:

5. Когда редактор открывается, заданный по умолчанию тип callback вызова - Code. Так как это тот тип, который Вы хотите, все, что Вы должны сделать, это определить имя функции, которую Вы хотите вызвать. Функция должна иметь понятное имя, поэтому печатаем quit в поле Function.

6. Щелкаем Apply для обновления списка вызовов Callbacks, затем нажимаем Done, чтобы закрыть редактор.

7 Щелкаем Done, снова, чтобы закрыть редактор меню.

Установка кода

Теперь сгенерируем код для приложения и отредактируем сгенерированную заглушку кода так, чтобы пункт Quit заставил ваше приложение завершаться.

1. Выберем Build>Generate UI. При этом сгенерируются необходимые прикладные файлы.

2. После того, как процесс генерации закончится, откроем Browse Files, выберем Window>Show Project. Просмотрим список, пока не найдем файл quit.c. Это - универсальный шаблон кода, который PhAB генерировал для вашей quit() функции.

3. Вы должны создать функцию выхода из программы. Чтобы сделать это, выберите quit.c в списке файлов, нажмите кнопку Edit, или дважды щелкните quit.c, затем замените текст функции quit() на следующий:

int

quit( PtWidget t *widget, ApInfo t *apinfo,

PtCallbackInfo t *cbinfo )

{

/* eliminate ’unreferenced’ warnings */

widget = widget,

apinfo = apinfo,

cbinfo = cbinfo;

PtExit( EXIT SUCCESS );/*Необходимо вставить эту строку*/

/* Эта инструкция никогда не будет достигнута */

return( Pt CONTINUE );

}

PtExit () - функция, которая очищает среду Фотона и затем выходит из приложения. Если Вы используете интегрированную среду разработки.

Вы можете также редактировать quit.c, или любой другой файл исходного текста, из редактора интегрированной среды разработки, дважды нажимая файл в проектном дереве навигатора.

4. После того, как Вы отредактировали, код, сохраним изменения, и закроем редактор, сформируем и выполним ваше приложение.

5. При выполнении приложения, нажмем на кнопку File, чтобы вызвать меню File. Выберем пункт меню Quit. Приложение немедленно закончится, и все окна закроются.

Обучающая программа 4. — создание диалогов

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

В этой обучающей программе, Вы будете:

_ редактировать пункт About Demo в Help меню диалога

_ добавлять метки, и кнопку Done к новому диалогу

_ определять функцию установки, которая изменяет текст одной из меток, чтобы отобразить номер версии, когда диалог реализован

О диалогах

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

Больше об именах образца

Чтобы облегчить для Вас, обращение к виджетам изнутри вашего прикладного кода, PhAB генерирует глобальную переменную и декларацию. Каждая из них основаны на имени образца виджета. Глобальная переменная, которая имеет префикс ABN_, представляет имя виджета. Декларация, которая имеет префикс ABW_, представляет указатель образца виджета. Например, Вам назвали виджет about_version. PhAB использует этоимя, чтобы генерировать глобальную переменную по имени ABN_about_version и декларации по имени ABW_about_version. В этой обучающей программе Вы узнаете, как использовать эти сгенерированные имена.

Значение переменной ABN_... виджета уникально во всем приложении.

Присоединение модуля диалога

1. Делаем копию приложения tut3, которое Вы создавали и переименовываем на tut4:

_ Из IDE — выбираем Prodject, выбираем Edit> Copy, и затем выбираем Edit> Paste. Вы можете дать новое имя для проекта в диалоге, который здесь появляется.

_ Из автономного PhAB — открываем приложение tut3. и используем из меню File, пункт Save As, чтобы сохранить приложение как tut4.

2. Открываем модуль Help, который Вы создавали (это может все еще быть iconified).

3. Нажимают ресурс Пунктов меню в панели управления Ресурсов, чтобы открыть редактор, меню.

4. Выбираем About Demo, затем нажимают значок рядом с полем Callback, чтобы открыть редактор callback вызовов:

5. Когда редактор открывается, заданный по умолчанию тип callback вызова - Код. Идите к группе Module Types, и измените тип callback вызова на Диалог.

6. В Поле имени, напечатайте aboutdlg как имя модуля диалога, с которым Вы хотите связаться. (Этот диалог еще не существует, но PhAB будет просить, чтобы Вы позже создали его .)

7 В поле Setup Function, напечатаем установку aboutdlg. Это - имя, которое мы даем функции установки, которую будем вызывать прежде, чем диалог реализован. Используя эту функцию, мы изменим содержание виджета метки в пределах диалога, чтобы отобразить номер версии.

8. Так как Вы хотите, чтобы функция aboutdlg setup была вызванная перед диалогом, реализована, удостоверьтесь, что кнопка Prerealize доступна.

9. Нажимают значок Location, чтобы определить, где Вы хотите, чтобы диалог появился, когда он будет реализовываться. (Среднее Экранное местоположение - хороший выбор.) Нажмите Done. Ваша информация callback вызова должна теперь смотреть как-то подобно этому (в зависимости от местоположения, которое Вы выбрали):

10. Нажимаем Apply в группе Actions, чтобы добавить callback вызов. Как только вы хотите связаться с не существующем модулем диалога, PhAB просит, чтобы Вы выбрали стиль; выберите Plain, и нажмите Done. Вы будете видеть новый диалог в рабочей области. Вы будете также видеть новый callback вызов в списке Callbacks в редакторе callback вызовов.

11. Щелкнем Done , чтобы закрыть редактор callback вызовов, затем нажмем Done снова, чтобы закрыть редактор меню.

Добавление виджетов к диалогу

1. Открывает aboutdlg модуль диалога.

2. Видим два PtLabel виджета в верхней половине диалога, и PtButton около основания:

3. Выбирают вершину PtLabel виджет и изменяют его ресурс текста метки на to About this Demo. Тогда измените его горизонтальное выравнивание на Pt_CENTER.

4. Выбираем другой PtLabel виджети изменяют его текст метки на пустую строку. При этом изменим его горизонтальное выравнивание на Pt_CENTER. Позже, Вы заполните в aboutdlg setup() функцию так, чтобы она изменила пустой текст этой метки, чтобы отобразить номер версии.

5. Вы должны дать этому пустому PtLabel виджету имя образца, по которому Вы будете обращаться к нему в коде. Поэтому измените его имя образца на about version.

Характеристики

Тип файла
Документ
Размер
1,14 Mb
Тип материала
Высшее учебное заведение

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

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6367
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее