Ruby v Linuxu - GTK

Ostatní jazyky Ruby Ruby v Linuxu - GTK

I když je aplikace GTK všude přibližně stejná, alespoň malý článek si zaslouží. Budeme k tomu potřebovat balík "ruby-gtk2". Následně velice snadno použijeme:

#!/etc/alternatives/ruby

require 'gtk2'

class Deit < Gtk::Window

        def initialize
                super

                set_title  "Deit"

                signal_connect  "destroy" do
                        Gtk.main_quit
                end

                set_default_size 250, 200
                set_window_position Gtk::Window::POS_CENTER

                show
        end
end

Gtk.init
        window = Deit.new
Gtk.main

Předáme tedy informaci o umístění interpretu, naimportujeme gtk2 knihovnu, zdědíme okno (pomocí "<") a následně jej zobrazíme. Proč nefunguje ukončení oken v GTK standardně - automaticky - mi je záhadou, každopádně seznam všech signálů (eventů) naleznete zde:

http://ruby-gnome.sourceforge.net/…/signal.html

Pokud byste chtěli přidávat nějaké ty widgety (controly), musíte dodržet standardní GTK layout. Tedy nejprve je třeba přidat nějaký container, ty jsou:

  • Horizontal Boxes
  • Vertical Boxes
  • Table
  • Fixed

( Seznam widgetů: http://ruby-gnome2.sourceforge.jp )

Snad není třeba překládat. Akorát Fixed, pod tím si představte nescrollovatelný panel. Pokud budete chtít nějaký widget scrollovat, tak musíte do Fixed přidat ScrolledWindow, mnohé widgety bez toho ani nejedou.

Nuže, přidáme si tedy tabulku a do ní Label, Entry, TextView a Button:

#!/etc/alternatives/ruby
#encoding: UTF-8
require 'gtk2'

class Deit < Gtk::Window

        def initialize
                super

                set_title "Deit"

                signal_connect  "destroy" do
                        Gtk.main_quit
                end

                set_default_size 250, 160
                set_window_position Gtk::Window::POS_CENTER

                init_ui

                show_all
        end

        def init_ui

                table = Gtk::Table.new 2, 2

                label = Gtk::Label.new "Toto píši: "

                table.attach(label, 0, 1, 0, 1, 0, 0, 4, 4)

                tv = Gtk::TextView.new

                tv.set_wrap_mode Gtk::TextTag::WRAP_WORD

                tv.set_size_request 200, 118

                table.attach(tv, 1, 2, 0, 1, 0, 0, 4, 4)

                button = Gtk::Button.new "Click me!"

                table.attach(button, 0, 1, 1, 2, 0, 0, 4, 4)

                entry = Gtk::Entry.new

                entry.set_size_request 200, 26

                table.attach(entry, 1, 2, 1, 2, 0, 0, 4, 4)

                add(table)
        end
end

Gtk.init
        window = Deit.new
Gtk.main

Co znamenají parametry v attach máte zde:

http://ruby-gnome2.sourceforge.jp/hiki.cgi?…

A ano, "#encoding: UTF-8" změní charset, tudíž můžeme použít diakritiku...

Výsledek:

Co takhle přidat do TextView text z Entry po kliknutí na tlačítko "Click me!"?

button.signal_connect  "button_press_event" do

        tv.buffer.text = tv.buffer.text + entry.text + "\r\n"

        entry.text = ""

end

Myslím, že dál si již na vše přijdete...


 

  Aktivity (1)

Článek pro vás napsal matesax
Avatar

Jak se ti líbí článek?
Celkem (2 hlasů) :
55555


 


Miniatura
Předchozí článek
Základní syntaxe jazyka Ruby
Miniatura
Všechny články v sekci
Ruby

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!