-->

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

На нашем литературном портале можно бесплатно читать книгу Программирование на языке Ruby, Фултон Хэл-- . Жанр: Программирование. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Программирование на языке Ruby
Название: Программирование на языке Ruby
Дата добавления: 16 январь 2020
Количество просмотров: 514
Читать онлайн

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

Программирование на языке Ruby - читать бесплатно онлайн , автор Фултон Хэл
Ruby — относительно новый объектно-ориентированный язык, разработанный Юкихиро Мацумото в 1995 году и позаимствовавший некоторые особенности у языков LISP, Smalltalk, Perl, CLU и других. Язык активно развивается и применяется в самых разных областях: от системного администрирования до разработки сложных динамических сайтов. Книга является полноценным руководством по Ruby — ее можно использовать и как учебник, и как справочник, и как сборник ответов на вопросы типа «как сделать то или иное в Ruby». В ней приведено свыше 400 примеров, разбитых по различным аспектам программирования, и к которым автор дает обстоятельные комментарии. Издание предназначено для программистов самого широкого круга и самой разной квалификации, желающих научиться качественно и профессионально работать на Ruby.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

Перейти на страницу:

  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

Программирование на языке Ruby - img_6.jpeg

Рис. 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", "")

Перейти на страницу:
Комментариев (0)
название