まず例として、前出のテキストウィジェットの例に下図のような メニューバーを付けてみます。
この例のメニュー部分は、次の 3つのウィジェットで構成されます。
プログラム menu.rb:
require 'gtk'
window = Gtk::Window.new(Gtk::WINDOW_TOPLEVEL)
mbar = Gtk::MenuBar.new
filemitem = Gtk::MenuItem.new('File')
filemitem.show
filemenu = Gtk::Menu.new
item1 = Gtk::MenuItem.new('Open')
item1.show
filemenu.add item1
item2 = Gtk::MenuItem.new('Save')
item2.show
filemenu.add item2
item3 = Gtk::MenuItem.new('Quit')
item3.show
filemenu.add item3
filemitem.set_submenu filemenu
mbar.append filemitem
mbar.show
vadj = Gtk::Adjustment.new(0,0,0,0,0,0)
text = Gtk::Text.new(nil, vadj)
vs = Gtk::VScrollbar.new(vadj)
text.set_editable true
hbox = Gtk::HBox.new(false, 0)
hbox.pack_start text, true, true, 0
hbox.pack_start vs, false, false, 0
vbox = Gtk::VBox.new(false, 0)
vbox.pack_start mbar, false, false, 0
vbox.pack_start hbox, true, true, 0
vbox.show
window.add vbox
text.show
vs.show
hbox.show
window.show
Gtk.main
プログラムの説明
mbar = Gtk::MenuBar.newfilemitem = Gtk::MenuItem.new('File')filemenu = Gtk::Menu.newitem1 = Gtk::MenuItem.new('Open')item1.showfilemenu.add item1filemitem.set_submenu filemenumbar.append filemitem先ほどの例では、メニューは作ったものの、 アイテムを選択しても何も起こりませんでした。 何かの動作をさせるには、メニューアイテムの 'activate' シグナルを使います。
例えば、先ほどの例でメニューから 'Quit' を選択すると終了するには次のようにします。
item3.signal_connect('activate')
exit
}
次へ