pygtkで遊ぼう(9) gtk.Expander

今日はgtk.Expanderを使ってみました。

gtk.Expanderは、その上にのっかっている子供のWidgetを見せたり、隠したりできる便利なWidgetです。

こんな感じです。
まずは、Expanderが閉じている状態

次はExpanderが開いている状態

設定用のダイアログで、「上級者用オプション」とか何とかを配置するのには便利そうです。

さて、ソースコードは以下のようになります。

# -*- coding: utf-8 -*-

import sys
import pygtk
if sys.platform != 'win32':
    pygtk.require('2.0')
import gtk

#
class TestWindow:
    '''
    '''
    def __init__(self):
        '''
        初期化
        '''
        self.wind = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.wind.set_border_width(4)
        self.wind.set_size_request(300, 200)
        self.wind.connect('delete_event', self.on_quit)

        exp = gtk.Expander()
        exp.set_label('_Expander')
        exp.set_use_underline(True)
        
        hbox = gtk.VBox()
        bt = gtk.Button('Test Button #1')
        hbox.pack_start(bt)

        bt = gtk.Button('Text Button #2')
        hbox.pack_start(bt)
        
        exp.add(hbox)
        self.wind.add(exp)
        self.wind.show_all()

    def on_quit(self, widget, event=None):
        '''
        終了処理
        '''
        print '-- quit --'
        gtk.main_quit()
        return False
#
#
if __name__ == '__main__':
    wind = TestWindow()
    gtk.main()

Expanderに関する部分は上のソースコードの赤い部分になります。

        exp = gtk.Expander()
        exp.set_label('_Expander')
        exp.set_use_underline(True)     

まず、1行目でExpanderを作成します。
2行目でExpanderに表示される文字列を設定します。
3行目は、Expanderの開閉をショートカットで行えるようにするための設定です。Trueを指定すると、2行目のラベル文字列中の’_’の次の文字列がショートカットキーになります。上のソースではAlt + EキーでExpanderが開閉します。

Expanderには、
expander_new_with_mnemonic()というメソッドもあるようですが、使いどころをまだ理解していないので、また後日。

つづく。