[python] PyGTK TreeView - změna barvy řádku

Jan Fuchs fuky na sunstel.asu.cas.cz
Úterý Září 6 07:56:50 CEST 2011


Ahoj vespolek,
ukázka:

     https://stelweb.asu.cas.cz/svn/observe/trunk/bin/observe-users-permissions.py
     http://pleione.asu.cas.cz/~fuky/observe/screenshots/observe-users-permissions-save.png

V ukázce je šest viditelných sloupečků, v sedmém je uložená barva řádku:

     gtk.ListStore(str, str, str, str, str, str, str)

Při vytváření sloupečků definuješ pomocí argumentu background na jaké pozici
bude uložena barva pozadí:

     columns = [
         ["Login", cellRendererText],
         ["First Name", cellRendererText],
         ["Last Name", cellRendererText],
         ["E-mail", cellRendererText],
         ["Permission", cellRendererCombo],
         ["Save result", cellRendererText],
     ]

     id = 0
     for item in columns:
         column = gtk.TreeViewColumn(item[0], item[1], text=id, background=6)
         treeView.append_column(column)
         id += 1

Přidání řádku (color: "LightGreen", "LightPink" atp.):

     self.listStore.append([
         user["login"],
         user["firstName"],
         user["lastName"],
         user["email"],
         user["permission"],
         save_result,
         color,
     ])

Názvy barev nalezneš v /etc/X11/rgb.txt.

Změna barvy řádku:

     def permissionChanged(self, widget, path, text, model):
         login = model[path][0]

         if (text in ["none", "read", "control"]):
             model[path][4] = text

             if (self.permissions[login] != text):
                 model[path][6] = "LightBlue"
             else:
                 model[path][6] = "White"


         S pozdravem Fuky

> Subject: [python] PyGTK TreeView - změna barvy řádku

--
http://www.fuky.org


Další informace o konferenci Python