Expander
#!/usr/bin/env python
#
# [SNIPPET_NAME: Expander]
# [SNIPPET_CATEGORIES: PyGTK]
# [SNIPPET_DESCRIPTION: Use an expander widget]
# [SNIPPET_DOCS: http://www.pygtk.org/pygtk2tutorial/sec-ExpanderWidget.html, http://www.pygtk.org/docs/pygtk/class-gtkexpander.html]
import time
import pygtk
pygtk.require('2.0')
import gtk
class ExpanderExample:
def __init__(self):
window = gtk.Window()
window.connect('destroy', lambda w: gtk.main_quit())
expander = gtk.Expander(None)
window.add(expander)
hbox = gtk.HBox()
image = gtk.Image()
image.set_from_stock(gtk.STOCK_OPEN, gtk.ICON_SIZE_BUTTON)
label = gtk.Label(' Folder Time')
hbox.pack_start(image)
hbox.pack_start(label)
expander.set_label_widget(hbox)
expander.connect('notify::expanded', self.expanded_cb)
window.show_all()
return
def expanded_cb(self, expander, params):
if expander.get_expanded():
label = gtk.Label(time.ctime())
label.show()
expander.add(label)
else:
expander.remove(expander.child)
#reset the size of the window to its original one
expander.get_parent().resize(1, 1)
return
def main():
gtk.main()
return
if __name__ == "__main__":
ee = ExpanderExample()
main()