+import wx
+import wx.lib.colourselect as cs
+import wx.lib.imageutils as iu
+
+class TestPanel(wx.Panel):
+ def __init__(self, *args, **kw):
+ wx.Panel.__init__(self, *args, **kw)
+
+ self.colour = wx.NamedColour("purple")
+
+ self.cpnl = wx.Panel(self, size=(100,100), style=wx.SIMPLE_BORDER)
+ self.slider = wx.Slider(self,
+ minValue=0,
+ value=100,
+ maxValue=200,
+ size=(300, -1),
+ style=wx.SL_HORIZONTAL | wx.SL_LABELS)
+ csel = cs.ColourSelect(self, colour=self.colour)
+
+ sizer = wx.BoxSizer(wx.VERTICAL)
+ sizer.Add(self.cpnl, 0, wx.ALL, 20)
+ sizer.Add(self.slider, 0, wx.LEFT, 20)
+ sizer.Add(csel, 0, wx.ALL, 20)
+ self.SetSizer(sizer)
+
+ self.slider.Bind(wx.EVT_SCROLL, self.OnSliderChanged)
+ self.Bind(cs.EVT_COLOURSELECT, self.OnColourSelect)
+
+ self.UpdatePanel()
+
+
+ def UpdatePanel(self):
+ val = self.slider.GetValue()
+
+ colour = iu.stepColour(self.colour, val)
+
+ self.cpnl.SetBackgroundColour(colour)
+ self.cpnl.Refresh()
+
+
+ def OnSliderChanged(self, evt):
+ self.UpdatePanel()
+
+
+ def OnColourSelect(self, evt):
+ self.colour = evt.GetValue()
+ self.UpdatePanel()
+
+
+
+app = wx.App()
+frm = wx.Frame(None, title="Stepping Colours")
+pnl = TestPanel(frm)
+frm.Show()
+app.MainLoop()
+