Хэл Фултон - Программирование на языке Ruby

Тут можно читать онлайн Хэл Фултон - Программирование на языке Ruby - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ДМК Пресс, год 2007. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование на языке Ruby
  • Автор:
  • Жанр:
  • Издательство:
    ДМК Пресс
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    5-94074-357-9
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Хэл Фултон - Программирование на языке Ruby краткое содержание

Программирование на языке Ruby - описание и краткое содержание, автор Хэл Фултон, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов.

Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии.

Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.

Программирование на языке Ruby - читать онлайн бесплатно ознакомительный отрывок

Программирование на языке Ruby - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Хэл Фултон
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Листинг 12.7. Заказ билета на самолет

$KCODE = "U"

require "gtk2"

class TicketWindow < Gtk::Window

def initialize

super("Purchase Ticket")

signal_connect("destroy") { Gtk.main_quit }

dest_model = Gtk::ListStore.new(String, String)

dest_view = Gtk::TreeView.new(dest_model)

dest_column = Gtk::TreeViewColumn.new("Destination",

Gtk::CellRendererText.new,

:text => 0)

dest_view.append_column(dest_column)

country_column = Gtk::TreeViewColumn.new("Country",

Gtk::CellRendererText.new,

:text => 1)

dest_view.append_cоlumn(country_cоlumn)

dest_view.selection.set_mode(Gtk::SELECTION_SINGLE)

[["Cairo", "Egypt"], ["New York", "USA"],

["Tokyo", "Japan"]].each do |destination, country|

iter = dest_model.append

iter[0] = destination

iter[1] = country

end

dest_view.selection.signal_connect("changed") do

@city = dest_view.selection.selected[0]

end

@round_trip = Gtk::CheckButton.new("Round Trip")

purchase = Gtk::Button.new("Purchase")

purchase.signal_connect("clicked") { cmd_purchase }

@result = Gtk::Label.new

@coach = Gtk::RadioButton.new("Coach class")

@business = Gtk::RadioButton.new(@coach, "Business class")

@first = Gtk::RadioButton.new(@coach, "First class")

flight_box = Gtk::VBox.new

flight_box.add(dest_view).add(@round_trip)

seat_box = Gtk::VBox.new

seat_box.add(@coach).add(@business).add(@first)

top_box = Gtk::HBox.new

top_box.add(flight_box).add(seat_box)

main_box = Gtk::VBox.new

main_box.add(top_box).add(purchase).add(@result)

add(main_box)

show_all

end

def cmd_purchase

text = @city

if @first.active?

text += ": first class"

elsif

@business.active?

text += ": business class"

elsif @coach.active?

text += ": coach"

end

text += ", round trip " if @round_trip.active?

@result.text = text

end

end

Gtk.init

TicketWindow.new

Gtk.main

Рис 126 Различные виджеты GTK В этом приложении как и в предыдущих - фото 6

Рис. 12.6. Различные виджеты GTK

В этом приложении, как и в предыдущих примерах, создается главное окно с обработчиком события. Затем формируется список с двумя колонками, дизайн которого следует паттерну Модель-Вид-Контроллер (Model-View-Controller — MVC); класс Gtk::ListStore(модель) имеет две колонки типа String.

Далее создается виджет Gtk::TReeView.Класс Gtk::treeViewColumnконфигурирует эту колонку. Первая колонка называется «Destination», а для отображения клеток применяется класс рисовальщика Gtk::CellRendererText. Первая колонка модели (с номером 0) — Gtk::ListStore— служит значением текстового свойства. Итак, рисовальщики клеток наполняют древесную модель данными. В GTK+ 2.x есть несколько готовых рисовальщиков клеток, в том числе Gtk::CellRendererText, Gtk::CellRendererPixbufи Gtk::CellRendererToggle. Далее в список добавляются три строки данных и устанавливается обработчик события "changed", который будет вызываться, когда пользователь выберет другую строку. Этот обработчик изменит значение переменной @city, записав в нее текст из первой колонки только что выбранной строки.

Затем создается простой флажок ( Gtk::CheckButton) и кнопка ( Gtk::Button). Обработчик события нажатия кнопки вызовет метод cmd_purchase. Метка @resultпервоначально пуста, но позже в нее будет записана строка, определяющая вид заказанного билета.

Три переключателя создаются как члены одной группы, то есть в любой момент может быть выбран лишь один из них. Когда пользователь щелкает по любому переключателю, равнее выбранный сбрасывается. Первым параметром конструктору переключателя передается первый переключатель из той же группы. Поэтому у конструктора первого переключателя в группе этого параметра нет, а остальным передается ссылка на первый переключатель.

Виджеты нужно организовать на экране так, чтобы пользователю было удобно. Мы воспользовались комбинацией контейнеров Gtk::НВохи Gtk::VBox. Список расположен над флажком. Все три переключателя расположены вертикально справа от списка. А кнопка помещена под всеми остальными виджетами.

Метод cmd_purchaseочень прост: он строит строку, отражающую состояние всех виджетов в момент нажатия кнопки. У переключателей и флажков есть метод active?, который возвращает true, если виджет отмечен. Построенная строка записывается в метку @resultи потому появляется на экране.

Во многих приложениях интерфейс содержит меню. В следующем примере показано, как можно организовать меню в Ruby/GTK2. Заодно демонстрируется применение всплывающих подсказок — мелкая деталь, способная украсить любую программу.

В листинге 12.8 создается главное окно с меню, содержащим пункт Fileи еще два фиктивных пункта. В меню Fileесть команда Exit, которая завершает приложение. Оба пункта Fileи Exitснабжены всплывающими подсказками.

Листинг 12.8. Пример меню в GTK

$KCODE = "U"

require "gtk2"

class MenuWindow < Gtk::Window

def initialize

super("Ruby/GTK2 Menu Sample")

signal_connect("destroy") { Gtk.main_quit }

file_exit_item = Gtk::MenuItem.new("_Exit")

file_exit_item.signal_connect("activate") { Gtk.main_quit }

file_menu = Gtk::Menu.new

file_menu.add(file_exit_item)

file_menu_item = Gtk::MenuItem.new("_File")

file_menu_item.submenu = file_menu

menubar = Gtk::MenuBar.new

menubar.append(file_menu_item)

menubar.append(Gtk::MenuItem.new("_Nothing"))

menubar.append(Gtk::MenuItem.new("_Useless"))

tooltips = Gtk::Tooltips.new

tooltips.set_tip(file_exit_item, "Exit the app", "")

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и Useless. Что-то делает лишь первое меню, остальные приведены только для демонстрации.

Всплывающими подсказками управляет единственный объект Gtk::Tooltips. Чтобы создать подсказку для любого виджета, например для пункта меню, нужно вызвать метод set_tip, которому передаются сам виджет, текст подсказки и строка, содержащая дополнительный скрытый текст. Скрытый текст не показывается в составе подсказки, но может, например, использоваться для организации оперативной справки.

Чтобы разместить полосу меню в верхней части главного окна, мы взяли Gtk::VBoxв качестве самого внешнего контейнера. В данном случае мы добавляем в него полосу меню не методом add, а методом pack_start, чтобы точнее контролировать внешний вид и положение виджета.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Хэл Фултон читать все книги автора по порядку

Хэл Фултон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Программирование на языке Ruby отзывы


Отзывы читателей о книге Программирование на языке Ruby, автор: Хэл Фултон. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x