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

Интервал:

Закладка:

Сделать

Рассмотрим еще один пример использования кнопки. На этой кнопке будет изображение, а не просто текст.

Я создал GIF-файлы с изображениями стрелок, указывающих вверх и вниз ( up.gifи down.gif). Для получения ссылок на них можно воспользоваться классом TkPhotoimage, а затем передать эти ссылки в качестве параметров при создании кнопок.

up_img = TkPhotoimage.new("file"=>"up.gif")

down_img = TkPhotoimage.new("file"=>"down.gif")

TkButton.new(bottom) do

image up_img

command proc { tlab.configure("text"=>(temp+=1).to_s) }

pack Left

end

TkButton.new(bottom) do

image down_img

command proc { tlab.configure("text"=>(temp-=1).to_s) }

pack Left

end

Здесь просто заменены некоторые строки в первом примере. Если не считать внешнего вида кнопок, то поведение не изменилось. На рис. 12.2 показано окно приложения.

Рис 122 Имитация термостата с графическими кнопками 1214 Текстовые - фото 2

Рис. 12.2. Имитация термостата (с графическими кнопками)

12.1.4. Текстовые поля

Чтобы отобразить поле для ввода текста и манипулировать им, применяется виджет TkEntry. Как и следовало ожидать, для указания размера, цвета и поведения предусмотрены многочисленные атрибуты. Мы приведем довольно объемный пример, иллюстрирующий применение некоторых из них.

Поле ввода полезно лишь, если существует способ получить введенное в него значение. Обычно поле связывается с переменной (если быть точным, с объектом TkVariable), хотя можно воспользоваться и методом get.

Предположим, что мы разрабатываем telnet-клиент, который принимает четыре параметра: адрес хоста, номер порта (по умолчанию 23), имя пользователя и его пароль. Для красоты добавим еще две кнопки для операций «войти» и «отменить».

В представленном фрагменте используются фреймы, чтобы форма выглядела аккуратнее. Правда, написанный код не переносим, и настоящий знаток Tk с презрением отверг бы его. Но просто для сведения мы все-таки документировали этот «небрежный» подход к организации информации на экране.

Вид окна показан на рис. 12.3, а код — в листинге 12.2.

Рис 123 Имитация telnetклиента Листинг 122 Имитация telnetклиента - фото 3

Рис. 12.3. Имитация telnet-клиента

Листинг 12.2. Имитация telnet-клиента

require "tk"

def packing(padx, pady, side=:left, anchor=:n)

{ "padx" => padx, "pady" => pady,

"side" => side.to_s, "anchor" => anchor.to_s }

end

root = TkRoot.new() { title "Telnet session" }

top = TkFrame.new(root)

fr1 = TkFrame.new(top)

fr1a = TkFrame.new(fr1)

fr1b = TkFrame.new(fr1)

fr2 = TkFrame.new(top)

fr3 = TkFrame.new(top)

fr4 = TkFrame.new(top)

LabelPack = packing(5, 5, :top, :w)

EntryPack = packing(5, 2, :top)

ButtonPack = packing(15, 5, :left, :center)

FramePack = packing(2, 2, :top)

FramelPack = packing(2, 2, :left)

var_host = TkVariable.new

var_port = TkVariable.new

var_user = TkVariable.new

var_pass = TkVariable.new

lab_host = TkLabel.new(fr1a) do

text "Host name"

pack LabelPack

end

ent_host = TkEntry.new(fr1a) do

textvariable var_host

font "{Arial} 10"

pack EntryPack

end

lab_port = TkLabel.new(fr1b) do

text "Port"

pack LabelPack

end

ent_port = TkEntry.new(fr1b) do

width 4

textvariable var_port

font "{Arial} 10"

pack EntryPack

end

lab_user = TkLabel.new(fr2) do

text "User name"

pack LabelPack

end

ent_user = TkEntry.new(fr2) do

width 21

font "{Arial} 12"

textvariable var_user

pack EntryPack

end

lab_pass = TkLabel.new(fr3) do

text "Password"

pack LabelPack

end

ent_pass = TkEntry.new(fr3) do

width 21

show "*"

textvariable var_pass

font "{Arial} 12"

pack EntryPack

end

btn_signon = TkButton.new(fr4) do

text "Sign on"

command proc {} # Ничего не делает!

pack ButtonPack

end

btn_cancel = TkButton.new(fr4) do

text "Cancel"

command proc { exit } # Просто выход.

pack ButtonPack

end

top.pack FramePack

fr1.pack FramePack

fr2.pack FramePack

fr3.pack FramePack

fr4.pack FramePack

fr1a.pack Frame1Pack

fr1b.pack Frame1Pack

var_host.value = "addison-wesley.com"

var_user.value = "debra"

var_port.value =23

ent_pass.focus

foo = ent_user.font

Tk.mainloop

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

В листинге 12.2 встречается также метод packing, единственная цель которого — сделать код чуточку чище. Он возвращает хэш, содержащий значения атрибутов padx, pady, sideи anchor.

Объекты TkVariableпредназначены для ассоциирования полей ввода с переменными. В классе TkVariableопределен метод доступа value, который позволяет получать и устанавливать значение, хранящееся в объекте.

При создании объекта TkEntry, например ent_host, задаем атрибут textvariable, который связывает его с соответствующим объектом TkVariable. Иногда мы явно указываем ширину поля методом width; если это не сделано, то будет автоматически выбрана разумная ширина, обычно определяемая значением, которое в данный момент хранится в поле. Часто ширину подбирают методом проб и ошибок.

Шрифты задаются для полей ввода так же, как для меток. Аналогично обстоит дело и с цветами, которые в этом примере не задаются. Если шрифт пропорциональный, то два поля одинаковой ширины на экране могут оказаться различными.

Как обычно, необходимо вызвать метод pack. Мы немного упростили вызовы за счет использования констант.

Для поля, содержащего пароль, вызывается метод show, поскольку вводимое в него значение не должен видеть человек, заглядывающий через плечо. Вместо набираемых пользователем символов в таком поле будет отображаться символ, переданный методу showв качестве параметра (в данном случае звездочка).

Я уже сказал, что кнопки тут нужны только для красоты. Кнопка Sign on вообще ничего не делает, a Cancel завершает программу.

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

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

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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