【发布时间】:2016-09-06 16:11:44
【问题描述】:
我希望将我的 GUI 应用程序中按钮的背景颜色更改为默认值。在线搜索后,我看到了
button1.SetBackgroundColour(wx.NullColor) 似乎不起作用。我正在使用python 2.7。
有没有其他方法可以在不使用系统颜色的情况下将其设置为默认颜色
【问题讨论】:
我希望将我的 GUI 应用程序中按钮的背景颜色更改为默认值。在线搜索后,我看到了
button1.SetBackgroundColour(wx.NullColor) 似乎不起作用。我正在使用python 2.7。
有没有其他方法可以在不使用系统颜色的情况下将其设置为默认颜色
【问题讨论】:
有点晚了,但也许其他人也有同样的问题。 你试过了吗
button1.SetBackgroundColour(wx.NullColour)
所以,写“颜色”而不是“颜色”,非美国文字。这对我有用。
【讨论】:
如果 wx.NullColour 不起作用,一个解决方案是为您寻找的颜色解码 RGB 代码并将其应用于您的背景。
例如我的 wx GUI 上的背景颜色是 Windows 的浅灰色,它的 RGB 代码是 R=240, G=240, B=240(例如,您可以使用 Paint 来测量)。
那么这应该可以工作:
button1.SetBackgroundColour(wx.Colour(240, 240, 240))
当然,如果您希望您的 GUI 在其他系统上可移植,这不是最佳选择,因为这种浅灰色只是 Windows 中的默认颜色。
【讨论】:
对于 Python 2.7.17 和 wxPython 3.0.2.0,以下似乎可行:
button1.SetBackgroundColour('')
【讨论】:
我认为这些解决方案不起作用,因为 wxPython 使用样式系统。我可以使用SetStyle 方法更改前景色和背景色。
我正在设计wx.TextCtrl,我需要在其中突出显示我搜索的文本。
首先,我将现有颜色存储到变量中。
bc = self.te.GetBackgroundColour()
fc = self.te.GetForegroundColour()
self.bcol = wx.Colour(bc[0], bc[1], bc[2], bc[3])
self.fcol = wx.Colour(fc[0], fc[1], fc[2], fc[3])
用SetStyle改变颜色
self.te.SetStyle(x, y, wx.TextAttr(wx.BLACK, wx.LIGHT_GREY))
并将其重置为原始颜色:
self.te.SetStyle(0, -1, wx.TextAttr(self.fcol, self.bcol))
【讨论】: