Книга: Программирование на языке Ruby
12.2.2. Простое оконное приложение
12.2.2. Простое оконное приложение
Любая программа, в которой используется Ruby/GTK2, должна содержать директиву require "gtk2"
. Функциональность Ruby/GTK2 предоставляется посредством модулей Gtk
и Gdk
, поэтому имена классов GTK+ обычно начинаются с префикса Gtk::
или Gdk::
.
Как правило, для инициализации Ruby/GTK2 мы вызываем метод Gtk.init
, а затем создаем окно верхнего уровня и обработчик сигнала destroy
(который поступает, когда пользователь закрывает окно). Метод show_all
делает окно видимым, а обращение к Gtk .main
запускает цикл обработки событий.
Мы еще вернемся к этой теме, но сначала рассмотрим пример. Следующий код, как и рассмотренная выше программа для Tk, отображает текущую дату:
$KCODE = "U"
require "gtk2"
Gtk.init
window = Gtk::Window.new("Today's Date")
window.signal_connect("destroy") { Gtk.main_quit }
str = Time.now.strftime("Today is n%B %d, %Y")
window.add(Gtk::Label.new(str))
window.set_default_size(200, 100)
window.show_all
Gtk.main
О переменной $KCODE
речь шла в главе 4. Метод Gtk.init
инициализирует Ruby/GTK2.
Главное окно (типа Gtk::window
) создается как окно «верхнего уровня», а указанный текст отображается в полосе заголовка.
Далее создается обработчик сигнала destroy
, который посылается при закрытии главного окна. Этот обработчик (в данном случае один блок) просто завершает главный цикл обработки событий. В документации по Ruby/GTK2 перечислены все сигналы, которые могут поступать каждому виджету (не забудьте и о суперклассах). Обычно они генерируются в результате манипуляций с мышью и клавиатурой, срабатывания таймеров, изменений состояния окна и т.д.
В следующей строке мы добавляем метку прямо в главное окно. Размер метки вычисляется автоматически на основе длины текста.
По умолчанию размеры родительских виджетов в GTK+ устанавливаются автоматически, исходя из размеров потомков. В данном случае длина строки, отображаемой выбранным по умолчанию шрифтом, определяет размер метки, а размер главного окна выбирается так, чтобы в нем поместилась метка. Такое окно получилось бы слишком маленьким, поэтому с помощью метода set_default_size
мы говорим, что начальный размер главного окна должен составлять 200?100 пикселей.
Затем мы вызываем метод show_all
, чтобы сделать главное окно и всех его потомков видимыми. По умолчанию главное окно скрыто, поэтому в большинстве приложений такой вызов необходим.
Метод Gtk.main
запускает цикл обработки событий в GTK+. Он не возвращает управления, пока приложение не завершится. В данном случае обработчик события destroy
приводит к выходу из Gtk.main
, после чего завершается и все приложение.
- 12.4.2. Простое оконное приложение
- 12.1.2. Простое оконное приложение
- 12.3.2. Простое оконное приложение
- Простое присваивание
- Приложение 9 Акт выполненных работ (к Договору на оказание информационных услуг)
- Приложение 21 Образец должностной инструкции начальника отдела по работе с сетевыми клиентами
- Приложение 19 Образец должностной инструкции мерчендайзера
- Приложение I Диаграммы взаимовлияния
- Приложение 10. Коды ошибок