[pygtk] Set a specific row of a treestore/treeview to another color
Alec Hussey
alec.hussey at madsoft.org
Sun Jan 20 13:06:19 WST 2008
Hello all,
I'm writing an application where I need to set a row of a
treestore/treeview to either red or green based upon whether the server is
up or not. I've looked all around and haven't been able to figure out how
exactly to accomplish this. It's easy to give columns their own color, but
I can't figure out how to give rows their own specific color. Here is the
code I have so far:
import gtk, gobject
class ServerList(gtk.ScrolledWindow):
def __init__(self):
gtk.ScrolledWindow.__init__(self)
# Create tree store and fill with data
self.treestore = gtk.TreeStore(gobject.TYPE_STRING, gobject.TYPE_STRING,
gobject.TYPE_STRING, gobject.TYPE_STRING)
for item in range(16):
status = ("On" if item % 2 == 0 else "Off")
self.treestore.append(None, ("Server %d" % item, "127.0.0.1:27015",
status, "Open"))
# Create tree view columns
self.name_renderer = gtk.CellRendererText()
self.name_renderer.set_property("cell-background", "red")
self.name_column = gtk.TreeViewColumn("Name", self.name_renderer, text=0)
self.serverip_renderer = gtk.CellRendererText()
self.serverip_column = gtk.TreeViewColumn("Server IP:Port",
self.serverip_renderer, text=1)
self.status_renderer = gtk.CellRendererText()
self.status_column = gtk.TreeViewColumn("Status", self.status_renderer,
text=2)
self.ftp_renderer = gtk.CellRendererText()
self.ftp_column = gtk.TreeViewColumn("FTP", self.ftp_renderer, text=3)
# Create the actual tree view
self.treeview = gtk.TreeView(self.treestore)
self.treeview.append_column(self.name_column)
self.treeview.append_column(self.serverip_column)
self.treeview.append_column(self.status_column)
self.treeview.append_column(self.ftp_column)
self.treeview.set_search_column(0)
self.treeview.set_reorderable(False)
#self.treeview.get_selection().connect("changed",
callbacks.serverlist_row_activated)
self.treeview.show()
# Setup the scrolled window
self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS)
self.add_with_viewport(self.treeview)
--
Thanks a lot in advance!
Alec Hussey
More information about the pygtk
mailing list