def setup_iconview(self, columns, column_types, container, changed_cb=None, activate_cb=None, text_style='text'):
""" Create a ready-to-use (list based) iconview widget (GTK+2.6 and baove)
Parameters:
columns : List of column names (should only be two - one for icon & one for description)
column_types : List of variable types for each column
(eg. [gobject.TYPE_STRING, gobject.TYPE_LONG])
container : reference to widget that is to contain list,
almost always a scrolled window - gtk.ScrolledWindow()
changed_cb : the callback function for the "changed" TreeViewSelection signal
activate_cb : the callback function for the "changed" TreeViewSelection signal
text_style : 'text' for normail plain text,
'markup' for pango marked-up text
Returns:
Reference to IconView and ListStore widgets
e.g. to create a four column (first two displayed, rest hidden) icon view...
self.tvwProjects, self.lsProjects, self.tvwsProjects = self.setup_treeview(
['Picture', 'Desc'],
[gtk.gdk.Pixbuf, gobject.TYPE_STRING, gobject.TYPE_LONG, gobject.TYPE_STRING],
self.scwPictures,
self.on_tvwsPictures_changed,
None
'text')
"""
#create the ListStore and IconView objects
ls = gtk.ListStore(*column_types)
ivw = gtk.IconView(ls)
#set columns
for i in range(len(columns)):
if column_types[i] != gtk.gdk.Pixbuf:
#create text renderer
tvwRendererText = gtk.CellRendererText()
tvwRendererText.set_property('yalign', 0.0)
if text_style == 'markup':
#markup text rendering
column = gtk.TreeViewColumn(columns[i], tvwRendererText, markup=i)
ivw.set_markup_column(i)
else:
#default text rendering
column = gtk.TreeViewColumn(columns[i], tvwRendererText, text=i)
ivw.set_text_column(i)
else:
#create pixbuf renderer
tvwRendererPixbuf = gtk.CellRendererPixbuf()
column = gtk.TreeViewColumn(columns[i], tvwRendererPixbuf, pixbuf=i)
ivw.set_pixbuf_column(i)
#display it (add iconview to given widget)
container.add(ivw)
ivw.show()
#connect callbacks
if changed_cb:
ivw.connect('selection_changed', changed_cb)
if activate_cb:
ivw.connect('item_activated', activate_cb)
#done
return ivw, ls
评论列表
文章目录