SetBackgroundColour工作时,SetTextColour不起作用

时间:2015-07-27 12:29:51

标签: python wxpython

我在Wxpython中有一个网格,我正在对行进行操作,我希望那些符合条件的行以红色着色。

当我在做的时候:

attr = gridlib.GridCellAttr()
attr.SetBackgroundColour('#FF0000')
grid.SetRowAttr(i, attr)

它有效并且该行有红色背景......但如果我这样做:

attr = gridlib.GridCellAttr()
attr.SetTextColour('#FF0000')
grid.SetRowAttr(i, attr)

它不起作用。什么都没发生。

i是行索引。

我希望文字是红色而不是背景。

为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

以下最小示例适用于将行中文本的颜色设置为红色

import wx
import wx.grid as gridlib

class MyForm(wx.Frame):

    def __init__(self):

        wx.Frame.__init__(self, parent=None, title="Grid")
        panel = wx.Panel(self)

        self.grid = gridlib.Grid(panel)
        self.grid.CreateGrid(3, 3)

        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.grid, 1, wx.EXPAND)
        panel.SetSizer(sizer)

    def set_row_colour(self, row):
        attr = gridlib.GridCellAttr()
        attr.SetTextColour('#FF0000')
        self.grid.SetRowAttr(row, attr)


if __name__ == "__main__":
    app = wx.App(False)
    form = MyForm()
    form.set_row_colour(2)
    frame = form.Show()
    app.MainLoop()

如果它不适合你,wx可能会有所不同(我使用2.8.12.1)?