[pygtk] Creating an object browser

saeed saeed.gnu at gmail.com
Fri Aug 28 19:38:43 WST 2009


treev.set_enable_tree_lines(True)


On 8/28/09, Marcus Vinicius Eiffle Duarte <eiffleduarte at gmail.com> wrote:
> 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()
>> ________________________________
>>
>


More information about the pygtk mailing list