Программирование на языке Ruby
Программирование на языке Ruby читать книгу онлайн
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Далее мы конфигурируем виджет
@textcreate_tagGtk::TextTagВ данном случае мы хотим воспользоваться шрифтом из семейства Times; на платформе Windows мы, скорее всего, получим какой-то вариант шрифта Times Roman. В ОС Linux/UNIX параметром должна быть стандартная для X Window System строка указания шрифта. Система вернет шрифт, наиболее близкий к заданному.
Метка
@statusGTK+ предлагает два способа добавить полосы прокрутки. Можно напрямую создать объект
Gtk::ScrollBarGtk::ScrolledWindowВиджет
Gtk::ScrolledWindowGtk::BinGtk::ВохGtk::TextViewGtk::ScrolledWindowВ данном примере мы создали виджет
Gtk::ScrolledWindowscrollerset_policyscrollerТеперь надо настроить контейнер
Gtk::Vbox@statusВ следующих четырех строчках в поле ввода добавляется текст. В первой строчке мы получаем объект
Gtk::TextIterThis really is an editorПоскольку мы предварительно установили обработчик события
changedinsert12.2.5. Прочие виджеты
Даже для организации сравнительно простого графического интерфейса текстовых полей и кнопок может оказаться недостаточно. Нужны переключатели, флажки и другие виджеты. В следующем примере демонстрируются некоторые из них.
В листинге 12.7 предполагается, что пользователь хочет заказать билет на самолет. Для выбора города назначения используются классы
Gtk::TreeViewGtk::ListStoreGtk::TreeViewColumn Gtk::CheckButtonGtk::RadioButtonPurchase$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)
