メニュー

2014年9月7日

ファイル

04-menu.tar.gz

内容

メニューを作成します。はじめにメニューバーを作り、それにメニューアイテム、サブメニューを追加し、またそれぞれのサブメニューにメニューアイテム、サブメニューを追加していく、という流れになります。

まず、部品を入れるためのボックスを用意します。

box = gtk.VBox()
win.add(box)

縦方向のボックスを作り、ウインドウに追加しています。

メニューバーを作成します。

menubar = gtk.MenuBar()
box.pack_start(menubar, False, False, 0)

ここでは、部品を入れるボックスを用意したので、メニューバーはウインドウにではなくボックスに追加します。ウインドウ - ボックス - メニューバー という入れ子になります。

メニューバーに項目を追加します。

miFile = gtk.MenuItem("File")
menubar.append(miFile)

メニュー "File" ができます。これに項目を追加するために、サブメニューを設定します。

mFile = gtk.Menu()
miFile.set_submenu(mFile)

サブメニューにセパレータを追加します。

miSeparator = gtk.SeparatorMenuItem()
mFile.append(miSeparator)

項目 "Quit" を追加します。

miQuit = gtk.MenuItem("Quit")
mFile.append(miQuit)

ここで、部品の構造はウインドウ - ボックス - メニュバー - メニューアイテム ("File") - サブメニュー - メニューアイテム (セパレータ, "Quit" となっています。

"Quit" を選んだらプログラムが終了するように、コールバック関数を設定します。

miQuit.connect("activate", gtk.main_quit)

"Quit" にショートカットキー "Ctrl + Q" を設定するため、つぎのようにします。

accelGroup = gtk.AccelGroup()
win.add_accel_group(accelGroup)

...

miQuit.add_accelerator("activate", accelGroup,
        gtk.keysyms.q, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)

PyGTK プログラミング 目次へ