使用wx.DC设置背景颜色的更好方法

时间:2012-08-01 20:04:09

标签: python wxpython wxwidgets

现在,我正在设置这样的背景颜色,

dc.DrawRectangle(0,0,width,height)

您知道更好的方法来设置背景颜色吗?

http://wxpython.org/docs/api/wx.DC-class.html

2 个答案:

答案 0 :(得分:2)

如果您已经在wx.DC上绘画以绘制窗口的其余内容,那么最好的方法是设置背景画笔,然后清除DC。像这样:

def OnPaint(self, event):
    dc= wx.PaintDC(self)
    dc.SetBackground(wx.Brush(someColour))
    dc.Clear()
    # other drawing stuff...

如果您使用窗口的SetBackgroundColour方法设置颜色,那么您可以使用它而不是某些固定颜色值,如下所示:

def OnPaint(self, event):
    dc= wx.PaintDC(self)
    dc.SetBackground(wx.Brush(self.GetBackgroundColour()))
    dc.Clear()
    # other drawing stuff...

答案 1 :(得分:1)

适用于大多数窗口(包括按钮和其他小部件)的常规方法是调用wxWindow :: SetBackgroundColour()

http://docs.wxwidgets.org/2.8/wx_wxwindow.html#wxwindowsetbackgroundcolour

巧妙的是,如果你在最顶层的父级上调用它,所有的孩子都会自动继承相同的背景颜色。请参阅链接了解其运作方式。