Программирование на языке Ruby
Программирование на языке Ruby читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
box = Gtk::VBox.new
box.pack_start(menubar, false, false, 0)
box.add(Gtk::Label.new("Try the menu and tooltips!"))
add(box)
set_default_size(300, 100)
show_all
end
end
Gtk.init
MenuWindow.new
Gtk.main
И здесь базовая структура программы такая же, как в предыдущих примерах. В данном случае мы создаем пункт меню
Gtk::MenuItem
Exit
activate
Далее создается меню
File
Exit
File
File
File
submenu=
Затем
создается
Gtk::MenuBar
File
Nothing
Всплывающими подсказками управляет единственный объект
Gtk::Tooltips
set_tip
Чтобы разместить полосу меню в верхней части главного окна, мы взяли
Gtk::VBox
add
pack_start
Первым параметром методу
pack_start
false
Третий параметр — тоже булевская величина, говорящая о том, должны ли размеры виджет быть изменены так, чтобы он занял все отведенное пространство. Нам нужна лишь узкая полоса меню, поэтому мы и тут передаем
false
pack_start
Большую часть главного окна занимает метка. Напоследок мы принудительно устанавливаем размер окна 300×100 пикселей.
12.2.6. Дополнительные замечания
Ruby/GTK2 — это часть проекта Ruby-GNOME2. GNOME — пакет более высокого уровня, основанный на библиотеке GTK+, a Ruby-GNOME2 — набор привязок для библиотек, входящих в состав GNOME.
Ruby-GNOME2 включает следующие библиотеки:
• Базовые библиотеки. Они включены в пакеты ruby-gtk2. Иногда термином «Ruby/GTK2» обозначают всю совокупность этих библиотек. Они работают на платформах UNIX, MS Windows, Mac OS X (с X11) и Cygwin (с X11). Все они необходимы для других библиотек, входящих в состав Ruby-GNOME2.
• Ruby/GLib2. GLib — низкоуровневая инфраструктурная библиотека. Она предоставляет структуры данных на языке С, слой, обеспечивающий переносимость, поддержку Unicode и интерфейсы для поддержки цикла обработки событий, потоков, динамической загрузки и системы объектов. Ruby/GLib2 — обертка библиотеки GLib. Поскольку в Ruby уже есть хорошие классы для работы со строками и списками, некоторые функции GLib не реализованы. С другой стороны, Ruby/GLib2 содержит ряд важных функций для преобразования между объектами на С и на Ruby. Эта библиотека необходима для всех остальных библиотек, входящих в состав Ruby/GTK2.
• Ruby/ATK. Эта библиотека предоставляет набор интерфейсов для облегчения работы. Приложение или набор средств разработки, поддерживающие интерфейсы ATK, могут применяться с такими инструментами, как считыватели с экрана, лупы и альтернативные устройства ввода.
• Ruby/Pango. Библиотека для отображения текста с упором на интернационализацию с использованием кодировки UTF-8. Образует основу для работы с текстами и шрифтами в GTK+ (2.0).
• Ruby/GdkPixbuf2. Библиотека для загрузки и манипулирования изображениями. Поддерживает многочисленные графические форматы, включая JPEG, PNG, GIF и другие.
• Ruby/GDK2. Промежуточный слой, изолирующий GTK+ от деталей оконной системы.
• Ruby/GTK2. Основные виджеты для построения графических интерфейсов.
• Дополнительные библиотеки включены в пакеты
ruby-gnome2
• Ruby/GNOME2. Содержит дополнительные виджеты для проекта GNOME.
• Ruby/GnomeCanvas2. Виджет для интерактивного создания структурной графики.
• Ruby/GConf2. Прозрачная для процесса конфигурационная база данных (аналог реестра в Windows).
• Ruby/GnomeVFS. Позволяет приложениям одинаково обращаться к локальным и удаленным файлам.
• Ruby/Gstreamer. Мультимедийный каркас для обработки аудио и видеоинформации.
• Ruby/GtkHtml2. Виджет для представления HTML-документов.
• Ruby/GtkGLExt. Предлагает трехмерный рендеринг с использованием технологии OpenGL.
• Ruby/GtkSourceView. Виджет
Text
• Ruby/GtkMozEmbed. Виджет, включающий механизм рендеринга Mozilla Gecko.
• Ruby/Libart2. Поддержка базовых средств рисования.
• Ruby/Libgda. Интерфейс к архитектуре GDA (GNU Data Access), обеспечивающий доступ к источникам данных, например СУБД и LDAP.
• Ruby/Libglade2. Позволяет приложению загружать описание пользовательского интерфейса из XML-файлов во время выполнения. XML-файлы создаются мощным редактором интерфейсов GLADE, который упрощает издание интернационализированных графических интерфейсов пользователя.
• Ruby/PanelApplet. Библиотека для создания аплетов, размещаемых на панели GNOME.
• Ruby/GnomePrint и Ruby/GnomePrintUI. Виджеты для печати.
• Ruby/RSVG. Поддержка векторной графики в формате SVG.