Как установить цвет фона сетки wxPython? - PullRequest
0 голосов
/ 10 марта 2010

Я работаю с сеткой wxPython, но не могу установить ее цвет фона (часть сетки, которая не заполнена ячейками). Я пытался с grid.SetBackgroundColour, но без удачи; отображаемый задний цвет всегда является системным цветом по умолчанию для окон.

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

sys.version -> 2,5 (r25: 51908, 19 сентября 2006 г., 09:52:17) [MSC v.1310 32 бит (Intel)]

Версия O / S -> Windows XP с пакетом обновления 3 (SP3), но я попытался с живым компакт-диском Python на основе Ubuntu с тем же результатом.

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 ]

2 голосов
/ 10 марта 2010

grid.SetDefaultCellBackgroundColour(color) закрасит все, включая область вне клеток.

0 голосов
/ 10 мая 2018

используйте grid.SetDefaultCellBackgroundColour(grid.GetLabelBackgroundColour()), чтобы окрасить все в один цвет. Затем сетка может быть перекрашена на основе ячеек.

...