MENGGUNAKAN RUBY-GTk
Oleh:Slamet Nurhadi
Untuk menginstall paket-paket Ruby-GNOME2 di Ubuntu Linux cukup dengan mengetikan perintah:
#Teknik Informatika
#Universitas Nasional
require 'gtk2'
class RubyApp < Gtk::Window
def initialize
super
set_title "Simple menu"
signal_connect "destroy" do
Gtk.main_quit
end
init_ui
set_default_size 250, 200
set_window_position Gtk::Window::POS_CENTER
mb.append editm
# membuat sub menu save, import, exit dan undo
imenu =Gtk::Menu.new
importm =Gtk::MenuItem.new "import"
importm.set_submenu imenu
inews = Gtk::MenuItem.new "Import news feed..."
ibookmarks = Gtk::MenuItem.new "Import bookmarks..."
imail = Gtk::MenuItem.new "Import mail..."
imenu.append inews
imenu.append ibookmarks
save =Gtk::MenuItem.new "save"
save.signal_connect "activate" do
Gtk.main_save
end
exit = Gtk::MenuItem.new "Exit"
exit.signal_connect "activate" do
Gtk.main_quit
end
undo =Gtk::MenuItem.new "undo"
#membuat posisi dimana submenu akan ditaruh pada suatu menubar
editmenu.append undo
filemenu.append save
filemenu.append importm
filemenu.append exit
vbox = Gtk::VBox.new false, 2
vbox.pack_start mb, false, false, 0
add vbox
end
end
Gtk.init
window = RubyApp.new
Gtk.main
membuat menu dan toolbar
#Teknik Informatika
#Universitas Nasional
require 'gtk2'
class RubyApp < Gtk::Window
def initialize
super
set_title "Toolbar"
signal_connect "destroy" do
Gtk.main_quit
end
init_ui
vbox = Gtk::VBox.new false, 5
hbox = Gtk::HBox.new true, 3
valign = Gtk::Alignment.new 0, 1, 0, 0
vbox.pack_start valign
ok = Gtk::Button.new "OK"
ok.set_size_request 70, 30
close = Gtk::Button.new "Close"
hbox.add ok
hbox.add close
halign = Gtk::Alignment.new 1, 0, 0, 0
halign.add hbox
mb = Gtk::MenuBar.new
#membuat menubar file
#membuat menubar edit
editmenu = Gtk::Menu.new
editm = Gtk::MenuItem.new "Edit"
editm.set_submenu editmenu
mb.append editm
# membuat sub menu save, import, exit dan undo
imenu =Gtk::Menu.new
importm =Gtk::MenuItem.new "import"
importm.set_submenu imenu
inews = Gtk::MenuItem.new "Import news feed..."
ibookmarks = Gtk::MenuItem.new "Import bookmarks..."
imail = Gtk::MenuItem.new "Import mail..."
imenu.append inews
imenu.append ibookmarks
imenu.append imail
save =Gtk::MenuItem.new "save"
exit = Gtk::MenuItem.new "Exit"
exit.signal_connect "activate" do
#membuat posisi dimana submenu akan ditaruh pada suatu menubar
editmenu.append undo
filemenu.append save
filemenu.append importm
filemenu.append exit
toolbar = Gtk::Toolbar.new
toolbar.set_toolbar_style Gtk::Toolbar::Style::ICONS
newtb = Gtk::ToolButton.new Gtk::Stock::NEW
opentb = Gtk::ToolButton.new Gtk::Stock::OPEN
savetb = Gtk::ToolButton.new Gtk::Stock::SAVE
sep = Gtk::SeparatorToolItem.new
cuttb = Gtk::ToolButton.new Gtk::Stock::CUT
copytb = Gtk::ToolButton.new Gtk::Stock::COPY
quittb = Gtk::ToolButton.new Gtk::Stock::QUIT
toolbar.insert 0, newtb
toolbar.insert 1, opentb
toolbar.insert 2, savetb
toolbar.insert 3, sep
toolbar.insert 4, cuttb
toolbar.insert 5, copytb
#mengaktifkan toolbar dan menubar serta seting posisi
vbox = Gtk::VBox.new false, 2
vbox.pack_start mb, false, false, 0
vbox.pack_start toolbar, false, false, 0
vbox.pack_start halign, false, false, 3
add (vbox)
end
end
Gtk.init
window = RubyApp.new
Gtk.main
------Ticket-----
$KCODE
require "gtk2"
class TicketWindow < Gtk::Window
def initialize
super("Purchase Ticket")
signal_connect("destroy") { Gtk.main_quit }
dest_model = Gtk::ListStore.new(String, String)
[["Cairo", "Egypt"], ["New York", "USA"],
["Tokyo", "Japan"],["Jakarta", "Indonesia"]].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")
flight_box = Gtk::VBox.new
flight_box.add(dest_view).add(@round_trip)
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)
set_window_position Gtk::Window::POS_CENTER
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
Gtk.init
TicketWindow.new
Gtk.main
class RubyApp < Gtk::Window
def initialize
super
set_title "Windows"
signal_connect "destroy" do
Gtk.main_quit
end
init_ui
set_default_size 300, 250
set_window_position Gtk::Window::POS_CENTER
show_all
end
def init_ui
set_border_width 15
table = Gtk::Table.new 8, 4, false
table.set_column_spacings 3
title = Gtk::Label.new "Windows"
activate = Gtk::Button.new "Activate"
activate.set_size_request 50, 30
table.attach(activate, 3, 4, 1, 2, Gtk::FILL,
Gtk::SHRINK, 1, 1)
valign = Gtk::Alignment.new 0, 0, 0, 0
close = Gtk::Button.new "Close"
close.set_size_request 70, 30
valign.add close
table.set_row_spacing 1, 3
table.attach(valign, 3, 4, 2, 3, Gtk::FILL,
Gtk::FILL | Gtk::EXPAND, 1, 1)
halign2 = Gtk::Alignment.new 0, 1, 0, 0
help = Gtk::Button.new "Help"
help.set_size_request 70, 30
halign2.add help
table.set_row_spacing 3, 6
table.attach(halign2, 0, 1, 4, 5, Gtk::FILL,
Gtk::FILL, 0, 0)
Gtk.init
window = RubyApp.new
Gtk.main