Лучший способ разработать приложение с графическим интерфейсом ruby - это использовать visualruby:
http://visualruby.net
Вы можете сделать свой графический интерфейс полностью отделенным от ваших классов. Например, если вы хотите создать графический интерфейс для следующего класса, вы можете сделать это легко, не мешая ему:
class DataObject
def initialize(name, address, email, phone)
@name = name
@address = address
@email = email
@phone = phone
end
end
Вы создаете GUI для этого класса, наследуя его и добавляя GUI:
class DataObjectGUI < DataObject
include GladeGUI
def show()
load_glade(__FILE__) #loads glade/DataObjectGUI.glade into @builder
set_glade_all() #populates glade controls with insance variables from DataObject
show_window()
end
end
Интерфейс GladeGUI содержит всю магию графического интерфейса. Метод load_glade () загрузит файл DataObject.glade. Это форма поляна, которая содержит имена Gtk :: EntryBoxes, имя, адрес, телефон и адрес электронной почты. Форма отобразится на экране со всеми заполненными полями.
Очевидно, что show_window () заставит окно появиться на экране. Окно уничтожения автоматически вызывается GladeGUI при нажатии кнопки «х».
Этот шаблон дизайна можно использовать для любого класса. Хороший пример - если у вас есть класс ActiveRecord, и вы хотите показать запись на экране. Вы просто подкласс, как указано выше, и это редактируемые и сохраняемые.
Этот пример взят из одного из примеров проектов на visualruby.net.