57 lines
1.5 KiB
Python
57 lines
1.5 KiB
Python
|
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()
|
||
|
|