On Sat, 6 Mar 2004 08:21:00 +0100
Walter Anger <[EMAIL PROTECTED]> wrote:
> On Sat, 06 Mar 2004 00:38:53 -0300
> Phillip <[EMAIL PROTECTED]> wrote:
>
> have a look at the appended code. it is a "translation to python" of
> one of the examples in the treeview-tutorial of Tim-Philipp M�ller.
>
> renderer.set_property("foreground","red")
>
> does the trick.
got the information, that the code only changes the textcolor of a whole
column. it is some months ago, that i made it. it was thoughtless,
sorry.
a supplement, a simple code, how one can achieve colorization for every
cell(row) is in the first attachment. (change 'background' to
'foreground' to colorize text instead of the cell)
the second attachment is a more complex one, using
gtk.TreeViewColumn.set_cell_data_func, again a trancoding from one of
the examples in the treeview-tutorial.
hth
walter
#!/usr/bin/env python
try:
import pygtk; pygtk.require("2.0")
except:
pass
import gtk
class ListExample:
def __init__(self):
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("delete_event", gtk.mainquit)
model = gtk.ListStore(str, str, str, str)
model.append(("Henrik","Ibsen","green","#23abff"))
model.append(("Samuel","Beckett","orange","OldLace"))
model.append(("Thomas","Mann","yellow","peach puff"))
treeview = gtk.TreeView(model)
window.add(treeview)
treeview.get_selection().set_mode(gtk.SELECTION_NONE)
renderer = gtk.CellRendererText()
treeview.append_column(gtk.TreeViewColumn("First Name", renderer, text=0,
background=2))
treeview.append_column(gtk.TreeViewColumn("Last Name", renderer, text=1,
background=3))
window.show_all()
def main():
gtk.main()
return 0
if __name__ == "__main__":
ListExample()
main()
#!/usr/bin/env python
try:
import pygtk; pygtk.require('2.0')
except:
pass
import gtk
import pango
COL_FIRST_NAME = 0
COL_LAST_NAME = 1
COL_YEAR_BORN = 2
class TreeStoreExample:
def createAndFillModel(self):
treestore = gtk.TreeStore(str, str, int)
toplevel = treestore.append(None)
treestore.set(toplevel,
COL_FIRST_NAME, "Maria",
COL_LAST_NAME, "Incognito")
toplevel = treestore.append(None)
treestore.set(toplevel,
COL_FIRST_NAME, "Jane",
COL_LAST_NAME, "Average",
COL_YEAR_BORN, 1962)
child = treestore.append(toplevel)
treestore.set(child,
COL_FIRST_NAME, "Janinita",
COL_LAST_NAME, "Average",
COL_YEAR_BORN, 1985)
return treestore
def ageCellDataFunc(self, column, renderer, model, iter, data):
year_now = 2003
year_born = model.get_value(iter, COL_YEAR_BORN)
if year_born and year_born <= year_now:
age = year_now - year_born
buf = "%u years old" % age
renderer.set_property("foreground-set", gtk.FALSE)
else:
buf = "age unknown"
renderer.set_property("foreground", "red")
renderer.set_property("text", buf)
def createViewAndModel(self):
view = gtk.TreeView()
# --- Column 1 ---
column = gtk.TreeViewColumn()
column.set_title("First Name")
view.append_column(column)
renderer = gtk.CellRendererText()
column.pack_start(renderer, gtk.TRUE)
column.add_attribute(renderer, "text", COL_FIRST_NAME)
# --- Column 2 ---
column = gtk.TreeViewColumn()
column.set_title("Last Name")
view.append_column(column)
renderer = gtk.CellRendererText()
column.pack_start(renderer, gtk.TRUE)
column.add_attribute(renderer, "text", COL_LAST_NAME)
renderer.set_property("weight", pango.WEIGHT_BOLD)
# --- Column 3 ---
column = gtk.TreeViewColumn()
column.set_title("age")
view.append_column(column)
renderer = gtk.CellRendererText()
column.pack_start(renderer, gtk.TRUE)
column.set_cell_data_func(renderer, self.ageCellDataFunc, None)
model = self.createAndFillModel()
view.set_model(model)
view.get_selection().set_mode(gtk.SELECTION_NONE)
return view
def __init__(self):
window = gtk.Window(gtk.WINDOW_TOPLEVEL)
window.connect("delete_event", gtk.mainquit)
view = self.createViewAndModel()
window.add(view)
window.show_all()
def main():
gtk.main()
return 0
if __name__ == "__main__":
TreeStoreExample()
main()
_______________________________________________
pygtk mailing list [EMAIL PROTECTED]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/