如何设置wxPython网格背景颜色?

时间:2010-03-10 15:34:06

标签: python wxpython wxwidgets

我正在使用wxPython网格,但我无法设置它的背景颜色(未填充单元格的网格部分)。我尝试使用grid.SetBackgroundColour,但没有运气;显示的背景颜色始终是Windows的默认系统颜色。

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

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

O / S版本 - > Windows XP SP3,但我尝试使用基于Ubuntu的Python live cd,结果相同。

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

2 个答案:

答案 0 :(得分:2)

grid.SetDefaultCellBackgroundColour(color)将为所有内容着色,包括单元格外的区域。

答案 1 :(得分:0)

使用grid.SetDefaultCellBackgroundColour(grid.GetLabelBackgroundColour())为相同颜色的所有颜色着色。然后可以在单元格的基础上重新绘制网格。