【问题标题】:wxpython wx.GetBackgroundColour doesn't work properlywxpython wx.GetBackgroundColour 无法正常工作
【发布时间】:2010-12-04 21:40:20
【问题描述】:

我注意到 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 250 250 255 时,它会返回类似 232 232 232 255 的东西。它实际上适用于大多数小部件,而不仅仅是面板,例如按钮和静态文本?有什么可能的解释吗?

【问题讨论】:

    标签: wxpython


    【解决方案1】:

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

    【讨论】:

    • 我认为他希望从父面板继承背景颜色,就像它在其他控件上直观显示一样。
    • 我很确定这不是它在 wxPython 中的工作方式。在大多数情况下,每个小部件都有自己的默认颜色
    • wxPython 不只是对 C++ 实现的绑定吗?我将此基于 wx 的 C++ 代码,其中有关小部件背景的情况很复杂,特别是如果将主题背景混入其中(例如 Windows 上的 wxNotebook)。
    • 这取决于小部件的类型,有些会继承父级的颜色,有些不会。正如您所说,它也因主题和其他平台细节而变得复杂,并且随着时间的推移也发生了变化。我总是发现最好的方法是自己显式设置颜色(如果我想要非默认值)而不是依赖继承。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    • 2012-07-11
    • 2018-04-08
    • 2017-04-20
    相关资源
    最近更新 更多