【发布时间】:2011-10-15 12:05:09
【问题描述】:
我有一个我创建的按钮集合,并且需要在按下按钮时更改按钮的颜色。目前它设置了默认颜色(灰色 = 不活动;浅蓝色 = 活动):
但我想将活动的颜色更改为红色。
这是我的按钮类:
class ButtonClass(wx.Panel):
def __init__(self, parent, name, id):
wx.Panel.__init__(self, parent)
self.name = name
self.taskid = id
self.button = wx.ToggleButton(self, 1, size=(50, 50))
self.button.SetLabel('Start')
self.mainSizer = wx.BoxSizer(wx.HORIZONTAL)
self.mainSizer.Add(self.button)
self.Bind(wx.EVT_TOGGLEBUTTON, self.toggledbutton, self.button)
# Where the buttons change state
def toggledbutton(self, event):
# Active State
if self.button.GetValue() == True:
self.button.SetLabel('Stop')
# Inactive State
if self.button.GetValue() == False:
self.button.SetLabel('Start')
我尝试过使用 self.button.SetColour 、 self.button.SetBackgroundColour 、 self.button.SetForegroundColour 所有这些都没有成功。有没有办法在 wxpython 中实现这一点?
【问题讨论】:
-
我相当有信心这是特定于操作系统/主题的,并且您无法控制它,但我不能 100% 确定这一点。
-
@g.d.d.c - 我很害怕,但不确定。
-
让我运行一些测试,我的一个项目中有几个 ToggleButtons。几分钟后我会在这里更新我的发现。
-
我同样无法控制这些控件的突出显示颜色。 SetOwnBackgroundColor 似乎设置了包含大小调整器中按钮后面区域的颜色,但我不能影响任何标准方法中的实际按钮。我倾向于不可能,但我要主演这个以防其他人有办法。
-
Robin Dunn 的这句话表明这是 wxWidgets groups.google.com/group/wxpython-users/msg/ac60f3a1ef05197b 的限制。
标签: button colors wxpython togglebutton