2010-03-10 3 views
0

Je travaille avec une grille wxPython, mais je ne peux pas en définir la couleur d'arrière-plan (la partie de la grille qui n'est pas remplie de cellules). J'ai essayé avec grid.SetBackgroundColour, mais sans chance; la couleur de fond affichée est toujours la couleur par défaut du système pour Windows.Comment définir la couleur d'arrière-plan de la grille wxPython?

wx.version() -> 2.8.10.1 (MSW-unicode)

sys.version -> 2.5 (r25: 51908 19 Sep 2006, 09:52:17) [MSC v.1310 32 bit (Intel)]

Version O/S -> Windows XP SP3, mais j'ai essayé avec un live cd Python basé sur Ubuntu avec le même résultat.

import wx 
import wx.grid 

class TestFrame (wx.Frame): 
    def __init__ (self): 
     wx.Frame.__init__ (self, None, title="Grid Table", size=(640,480)) 

     grid = wx.grid.Grid(self, size=(300,300)) 
     grid.CreateGrid(2,2) 
     grid.SetCellValue(0,0,"1") 

     color = (100,100,255) 
     attr = self.cellAttr = wx.grid.GridCellAttr() 
     attr.SetBackgroundColour(color) 

     # for row, col in 
     for row in xrange(2): 
      for col in xrange(2): 
       grid.SetAttr(row, col, attr) 

     grid.SetBackgroundColour(color)  # <<< This don't work! 

app = wx.PySimpleApp() 
frame = TestFrame() 
frame.Show() 
app.MainLoop() 

Répondre

2

grid.SetDefaultCellBackgroundColour(color) va colorier tout, y compris la zone à l'extérieur des cellules.

+0

Fonctionne très bien, merci! J'ai manqué cela entre les centaines de couleurs et de couleurs dans les docs :) – PabloG

Questions connexes