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()