Аллен Питер В.
Шрифт:
Думаю, текст программы ясен без лишних комментариев. Нужно лишь пояснить один очень важный момент. Обратите внимание на то, что мы переопределили обработчик для события
Если данный обработчик возвращает FALSE, то будет вызвана функция destroy, которая уничтожит окно. Мы переписали функцию delete_event так, чтобы она всегда возвращала TRUE, то есть функция destroy вообще не будет вызвана. Но в таком случае наше окно вообще никогда не закроется, поэтому нужно, чтобы кто-то позаботился о закрытии окна. Это будет функция quit_confirm, отображающая диалог завершения работы.
Рис. 23.6. Программа только запущена
Рис. 23.7. Пользователь нажал на кнопку 4 раза
Рис. 23.8. Диалог завершения работы
Теперь рассмотрим обработчики событий кнопок Да и Нет диалога:
Кнопка
23.4.7. Меню
Меню программы вручную писать довольно неудобно, поэтому для разработки меню воспользуемся студией разработки графического интерфейса Glade.
23.4.8. Иерархия виджитов