[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