ステータスバー

2014年9月7日

ファイル

18-status.tar.gz

内容

ステータスバーを使ってみます。ツールバーのボタンの上にマウスポインタを置くと、ステータスバーに説明が表示されるようにしてみましょう。

ここでは、部品としてツールバー、テキストビュー、ステータスバーを置きます。テキストビューではスクロールバーを使えるようにします。スクロールバーを使うには、スクロールウインドウを用意し、その中にテキストビューを入れます。

scrollWin = gtk.ScrolledWindow()

scrollWin.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)

scrollWin.set_shadow_type(gtk.SHADOW_IN)

table.attach(scrollWin, 0, 1, 1, 2,
        gtk.EXPAND | gtk.FILL, gtk.EXPAND | gtk.FILL, 0, 0)

textView = gtk.TextView()
textView.grab_focus()

scrollWin.add(textView)

さて、ステータスバーを用意します。

statusbar = gtk.Statusbar()

ツールバーのボタンの上のマウスポインタの出入りを検出するために、"enter" イベントと "leave" イベントを拾います。ステータスバーの表示を変更するために、コールバック関数にステータスバーを渡します。

buttonIcon.connect("enter", buttonEnter, statusbar)
buttonIcon.connect("leave", buttonLeave, statusbar)

ステータスバーの表示の設定は次のように行います。

def buttonEnter(widget, statusbar):
    str = "toggle button"

    id = statusbar.get_context_id("")
    statusbar.push(id, str)


def buttonLeave(widget, statusbar):
    id = statusbar.get_context_id("")
    statusbar.push(id, "")
}

buttonEnter() で文字列をステータスバーのスタックに積み上げ、buttonLeave() でスタックから取り除いています。

PyGTK プログラミング 目次へ