[pygtk] Creating an object browser

Marcus Vinicius Eiffle Duarte eiffleduarte at gmail.com
Fri Aug 28 18:32:05 WST 2009


Saeed,

thanks for your example.

My real doubt, however, is if I can get an UI like the one you showed in
your example, with the graphical "look" of a tree, with lines connecting an
item to its subitems. It is kind of a standard "look" used in
technical/simulation software that I would like to reproduce in my pygtk
app. Qt offers this style (I guess it does so with its Tree View widget),
which is used in software like Salomé and several commercial packages, as
ANSYS Workbench. It is also a standard feature in several Windows apps.

Marcus Vinicius Eiffle Duarte
eiffleduarte at gmail.com
Niterói, RJ, Brasil


2009/8/28 saeed <saeed.gnu at gmail.com>

> I wrote an example:
> _______________________________
> #!/usr/bin/python
> import gtk
> from gtk import gdk
>
> pixDir = '/usr/share/glade3/pixmaps/hicolor/16x16/actions/'
>
> win = gtk.Window()
>
> model = gtk.TreeStore(gdk.Pixbuf, str)
> treev = gtk.TreeView(model)
> #treev.set_headers_visible(False)
>
> col = gtk.TreeViewColumn('Widget')
>
> cell = gtk.CellRendererPixbuf()
> col.pack_start(cell, expand=False)
> col.add_attribute(cell, 'pixbuf', 0)
>
> cell = gtk.CellRendererText()
> col.pack_start(cell, expand=False)
> col.add_attribute(cell, 'text', 1)
>
> treev.append_column(col)
>
> iterContainer = model.append(None)
> model.set(iterContainer, 1, 'Container') ## No icon!
>
> iterBin = model.append(iterContainer)
> model.set(iterBin, 1, 'Bin') ## No icon!
>
> iterBox = model.append(iterContainer)
> model.set(iterBox, 1, 'Box') ## No icon!
>
> iterTextView = model.append(iterContainer)
> model.set(iterTextView, 0,
> gdk.pixbuf_new_from_file(pixDir+'widget-gtk-textview.png'), 1,
> 'TextView')
>
> iterPaned = model.append(iterContainer)
> model.set(iterPaned, 1, 'Paned') ## No icon!
>
> iterNoteBook = model.append(iterContainer)
> model.set(iterNoteBook, 0,
> gdk.pixbuf_new_from_file(pixDir+'widget-gtk-notebook.png'), 1,
> 'TextView')
>
> iterButton = model.append(iterBin)
> model.set(iterButton, 0,
> gdk.pixbuf_new_from_file(pixDir+'widget-gtk-button.png'), 1, 'Button')
>
> iterColorButton = model.append(iterButton)
> model.set(iterColorButton, 0,
> gdk.pixbuf_new_from_file(pixDir+'widget-gtk-colorbutton.png'), 1,
> 'ColorButton')
>
> iterFontButton = model.append(iterButton)
> model.set(iterFontButton, 0,
> gdk.pixbuf_new_from_file(pixDir+'widget-gtk-fontbutton.png'), 1,
> 'FontButton')
>
> iterLinkButton = model.append(iterButton)
> model.set(iterLinkButton, 0,
> gdk.pixbuf_new_from_file(pixDir+'widget-gtk-linkbutton.png'), 1,
> 'LinkButton')
>
> iterToggleButton = model.append(iterButton)
> model.set(iterToggleButton, 0,
> gdk.pixbuf_new_from_file(pixDir+'widget-gtk-togglebutton.png'), 1,
> 'ToggleButton')
>
> iterCheckButton = model.append(iterToggleButton)
> model.set(iterCheckButton, 0,
> gdk.pixbuf_new_from_file(pixDir+'widget-gtk-checkbutton.png'), 1,
> 'CheckButton')
>
> iterRadioButton = model.append(iterCheckButton)
> model.set(iterRadioButton, 0,
> gdk.pixbuf_new_from_file(pixDir+'widget-gtk-radiobutton.png'), 1,
> 'RadioButton')
>
> treev.show_all()
> win.add(treev)
> win.connect('delete-event', gtk.main_quit)
> win.show_all()
> gtk.main()
> ________________________________
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.daa.com.au/pipermail/pygtk/attachments/20090828/e25c5732/attachment.htm 


More information about the pygtk mailing list