1. windwiny
  2. wxPython

Source

wxPython / sandbox / test_stepColours.py

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()