wxpython wx.getBackgroundColor不';我不能正常工作

wxpython wx.getBackgroundColor不';我不能正常工作,wxpython,Wxpython,我注意到wxpython有点奇怪。 测试以下代码 class test(wx.Frame): def __init__(self): wx.Frame.__init__(self, None, -1 "test") panel = wx.Panel(self, -1) panel.SetBackgroundColour(wx.Colour(250, 250, 250)) panel2 = wx.Panel(panel, -1

我注意到wxpython有点奇怪。 测试以下代码

class test(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, -1 "test")
        panel = wx.Panel(self, -1)
        panel.SetBackgroundColour(wx.Colour(250, 250, 250))
        panel2 = wx.Panel(panel, -1, (50, 50))
        print panel2.GetBackgroundColour()

当它应该是250 255时,它返回类似于232 255的值。它实际上适用于大多数小部件,而不仅仅是面板,例如按钮和静态文本?有什么可能的解释吗?

实际上,这里有两个面板。只设置第一个面板的颜色,然后打印第二个面板的背景色。这可能就是它们不同的原因…

我想他希望背景颜色从父面板继承下来,就像它在其他控件上的视觉效果一样。我很确定wxPython中不是这样工作的。在大多数CASIXWXPython中,每个小部件都有自己的默认颜色,而不仅仅是绑定到C++实现上。我将此基于WX的C++代码,其中WIDGET背景的情况很复杂,尤其是如果主题背景被扔进混合(例如Windows上的WxBooad)。这取决于小部件的类型,一些将继承父的颜色,有些则不会。正如你所说的,主题和其他平台细节也使它变得复杂,并且随着时间的推移也发生了变化。我总是发现最好的方法是自己显式地设置颜色(如果我想要非默认值),而不是依赖于继承。