Скопируйте получившуюся кнопку в следующую ячейку (Ctrl+C, Ctrl+V.). Для новой кнопки установите свойство Метка: СЕ. Проверить, что находится в буфере обмена, можно с помощью команды главного меню Glade: Вид, Буфер обмена.
Точно так же создайте еще 16 кнопок и разместите их так, как показано на рисунке 24.6.
Рис. 24.6. Калькулятор
Сейчас установим функции-обработчики для наших кнопок. Выделите кнопку ON и перейдите в окно свойств на вкладку Сигналы.
Рис. 24.7. Сигналы
Выберите сигнал clicked и нажмите OK. В поле обработчика введите имя функции-обработчика, например, on_button_ciick. Можно выбрать одну из стандартных функций, например, gtk_main_quit(), но не для этой кнопки — это ведь обработчик включения калькулятора, поэтому код для него мы должны будем писать самостоятельно. Теперь нажмите кнопку Добавить.
Аналогично создайте обработчики для остальных функций. Советую давать функциям понятные имена, например, on_button_N_click, где N — число от 0 до 9, или on_plus_click.
Вот и все, интерфейс калькулятора построен.
24.3. Работа с проектом
Прежде всего нужно сохранить наш проект. Нажмите кнопку Сохранить в главном окне Glade. Перед сохранением Glade предложит установить свойства проекта:
♦ Вкладка «Общие»
• Каталог проекта /home/ваше_имя/Проекты/Проект — сразу же измените Проекты на Projects и Проект на имя нашего проекта — calc. Использовать написанные кириллицей названия не запрещается, но и не рекомендуется.
• Название проекта: Calc.
• Название программы: calc — так будет назван исполнимый файл.
• Файл проекта: calc.glade.
• Каталог исходного кода: src (~/Projects/Calc/src).
• Каталог картинок: pixmap.
• Язык: С.
• Включить поддержку Gnome: Да.
♦ Вкладка «Параметры C»
• Все оставить по умолчанию.
В результате в каталоге ~/Projects/Calc будет создан файл проекта calc.glade. Этот файл полностью описывает наш проект на языке XML. Фрагмент этого файла приведен в листинге 25.1 — просто для общего развития.
Листинг 25.1. Фрагмент файла проекта calc.glade
<?xml version='1.0'?>
<GTK-Interface>
<project>
<name>Calc</name>
<program_name>calc</program_name>
<directory></directory>
<source_directory>src</source—directory>
<pixmaps_directory>pixmaps</pixmaps_directory >
<language>C</language>
<gnome_support>True</gnome_support>
<gettext_support>True</gettext_support>
</project>
<widget>
<class>GtkWindow</class>
<name>window1</name>
<border_width>7</border_width>
<title>window1</title>
<type>GTK_WINDOW_TOPLEVEL</type>
<position>GTK_WIN_POS_NONE</position>
<modal>False</modal>
<allow_shrink>False</allow_shrink>
<allow_grow>True</allow_grow>
<auto_shrink>False</auto_shrink>
<widget>
<class>GtkVBox</class>
<name>vbox2</name>
<homogeneous>False</homogeneous>
<spacing>0</spacing>
<widget>
<class>GtkEntry</class>
<name>entry1</name>
<height>50</height>
<can_focus>True</can_focus>
<editable>True</editable>
<text_visible>True</text_visible>
<text_max_length>0</text_max_length>
<text>0</text>
<child>
<padding>0</padding>
<expand>False</expand>
<fill>False</fill>
</child>
</widget>
...
</widget>
...
</widget>
...
</GTK-Interface>
Но кроме этого файла в каталоге Calc ничего нет. А где же исходный код? А где картинки? Чтобы Glade сгенерировала исходный код, нажмите кнопку Построить в главном окне Glade. В результате в каталоге calc будет создана структура подкаталогов, показанная на рис. 24.8.
Рис. 24.8. Структура каталогов проекта
В каталоге macros
находятся макросы для поддержки среды Gnome. Каталог po
предназначен только для вас — в него вы будете вносить сведения об изменениях в проекте. Каталог src
содержит исходный код проекта.
О каталоге src
нужно поговорить подробнее. В нем находятся следующие файлы: