Seite 1 von 1

Zellen Farbe in wx.listCtrl ändern

Verfasst: Montag 16. Februar 2009, 18:30
von DIDI1983
Hallo zusammen,

ist es möglich, den Hintergrund einer einzelnen Zelle in einem wx.ListCtrl Element zu ändern?

Hab nur die Option gefunden, dass sich der Hintergrund der ganzen Row ändert.

Sachverhalt:
Es gibt eine Liste mit Mitarbeitern und jeder Mitarbeiter besitzt einen Status. Ist der Mitarbeiter z.B. Anwesend so soll die Zelle in der Spalte Status grün sein.

Gruss

Verfasst: Montag 16. Februar 2009, 19:30
von sea-live
in der demo unter listctrlvirtual

sorry fehler beim lesen
es geht nur die ganze reihe in der farbe
wenn du reie spalte haben möchtest solltest du grid nehmen!

Code: Alles auswählen

            attr = gridlib.GridCellAttr()
            attr.SetTextColour(wx.BLACK)
            attr.SetBackgroundColour(color)
hier mal ein einfaches beispiel

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import wx
import wx.grid as  gridlib

wx.SetDefaultPyEncoding("iso-8859-1")
class MyFrame(wx.Frame):

    def __init__(self, parent = None, id = -1, title = "wxPython GRID", size = (300, 250)):
       
        wx.Frame.__init__(self, parent, id, title, size = size)
       
        self.tabelle = Tabelle(self)  

class Tabelle(gridlib.Grid): 
    def __init__(self,parent):
        gridlib.Grid.__init__(self,parent, -1)
        self.moveTo = None
        self.farben = (wx.Colour(200,200,20), wx.GREEN,wx.RED,  wx.CYAN)
        self.CreateGrid(5,3)
        self.SetCellBackgroundColour(1,1,self.farben[1])

if __name__ == "__main__":
   
    app = wx.PySimpleApp()
    frame = MyFrame()
    frame.Show()
    app.MainLoop()