Чтение онлайн

на главную - закладки

Жанры

Linux: Полное руководство

Аллен Питер В.

Шрифт:

Рис. 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
нужно поговорить подробнее. В нем находятся следующие файлы:

♦ interface.*, support.* — эти файлы сгенерированы Glade, и вам не нужно их редактировать;

♦ callback.* — функции-обработчики. Автоматически сгенерированные функции первоначально не делают ничего, это только заготовки. Чтобы ваша программа что-нибудь делала, вам нужно отредактировать файл callback.c;

♦ make.c — вы можете редактировать этот файл, если вам это нужно.

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

Александри В. Стихотворения. Эминеску М. Стихотворения. Кошбук Д. Стихотворения. Караджале И.-Л. Потерянное письмо. Рассказы. Славич И. Счастливая мельница

Эминеску Михай
126. Библиотека всемирной литературы
Поэзия:
поэзия
5.00
рейтинг книги
Александри В. Стихотворения. Эминеску М. Стихотворения. Кошбук Д. Стихотворения. Караджале И.-Л. Потерянное письмо. Рассказы. Славич И. Счастливая мельница

Крестоносец

Ланцов Михаил Алексеевич
7. Помещик
Фантастика:
героическая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Крестоносец

Требую развода! Что значит- вы отказываетесь?

Мамлеева Наталья
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Требую развода! Что значит- вы отказываетесь?

Источник

Билик Дмитрий Александрович
11. Бедовый
Фантастика:
юмористическое фэнтези
городское фэнтези
мистика
7.00
рейтинг книги
Источник

Бастард

Осадчук Алексей Витальевич
1. Последняя жизнь
Фантастика:
фэнтези
героическая фантастика
попаданцы
5.86
рейтинг книги
Бастард

Эволюционер из трущоб. Том 2

Панарин Антон
2. Эволюционер из трущоб
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Эволюционер из трущоб. Том 2

Бродяга

Первухин Андрей Евгеньевич
1. Бродяга
Фантастика:
попаданцы
5.40
рейтинг книги
Бродяга

Кодекс Охотника. Книга XXXVI

Винокуров Юрий
36. Кодекс Охотника
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXXVI

Товарищ "Чума" 7

lanpirot
7. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 7

1941, Великая Отечественная катастрофа: Итоги дискуссии

Коллектив авторов
Документальная литература:
военная документалистика
6.25
рейтинг книги
1941, Великая Отечественная катастрофа: Итоги дискуссии

Ведун

Сухов Александр Евгеньевич
1. Второй шанс
Фантастика:
фэнтези
боевая фантастика
альтернативная история
5.00
рейтинг книги
Ведун

Учитель из прошлого тысячелетия

Еслер Андрей
6. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Учитель из прошлого тысячелетия

Наследник

Кулаков Алексей Иванович
1. Рюрикова кровь
Фантастика:
научная фантастика
попаданцы
альтернативная история
8.69
рейтинг книги
Наследник

Бастард Императора. Том 10

Орлов Андрей Юрьевич
10. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 10