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
_______________________________________________
pygtk mailing list   [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/

Reply via email to