Zellen Farbe in wx.listCtrl ändern

Plattformunabhängige GUIs mit wxWidgets.
Antworten
DIDI1983
User
Beiträge: 3
Registriert: Dienstag 13. Januar 2009, 16:54

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
sea-live
User
Beiträge: 440
Registriert: Montag 18. Februar 2008, 12:24
Wohnort: RP

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()
Antworten