グリッドのセルの色を変える
グリッドで表を作るときに、何も指定しなければ各セルは背景色が白くなる。白一色では味気ないので、一行おきに色を変えたりすると見栄えがよくなる。
例えば、こんな感じ。
ソースは以下の通り。
import wx import wx.grid class TestFrame(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, title="Grid", size=(400,300)) grid = wx.grid.Grid(self) rownum = 10 colnum = 2 grid.CreateGrid(rownum, colnum) for row in range(rownum): for col in range(colnum): grid.SetCellValue(row, col, "[%s,%s]" % (row, col)) attr1 = wx.grid.GridCellAttr() attr2 = wx.grid.GridCellAttr() attr1.SetBackgroundColour("#FFFFCC") attr2.SetBackgroundColour("#FFCCFF") for r in xrange(rownum): if r%2 == 0: grid.SetRowAttr(r, attr1) # 行ごとの指定方法 else: grid.SetRowAttr(r, attr2) # grid.SetAttr(4, 0, attr1) # 個別のセルに対する指定方法 # grid.SetColAttr(0, attr1) # 列ごとの指定方法 app = wx.PySimpleApp() frame = TestFrame() frame.Show() app.MainLoop()
色の指定方法としては、カラーコードで与える方法と色の名前で与える方法があるが、名前で与えると、実行環境によっては認識できなかったりするようで、カラーコードで与えるのが無難(特にエラーにはならない)。認識できないと背景は白になる。
どんな色を使うかで、表全体の印象が変わってくるので、色の選択も重要ではある。その当たりのノウハウはデザインの領域だと思うが、知恵がないので適当にやってみる。何か定番の色の組み合わせがあるのかな。どこかで見た気がするが、必要なときに思い出せない。