Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Adapted from <a href="http://www.daniweb.com/forums/thread128350-6.html#" rel="noreferrer">DaniWeb</a>:</p> <pre><code>import wx class MyFrame(wx.Frame): def __init__(self, parent=None, title=None): wx.Frame.__init__(self, parent, wx.ID_ANY, title) self.panel = wx.Panel(self, size=(350, 450)) # this sets up the painting canvas self.panel.Bind(wx.EVT_PAINT, self.on_paint) # set frame size to fit panel self.Fit() def on_paint(self, event): # establish the painting canvas dc = wx.PaintDC(self.panel) x = 0 y = 0 w, h = self.GetSize() dc.GradientFillLinear((x, y, w, h), 'blue', 'black') app = wx.App(0) MyFrame(title='Gradient Test').Show() app.MainLoop() </code></pre> <p>And an alternative way to generate a gradient bitmap, using NumPy (from <a href="http://wiki.wxpython.org/WorkingWithImages" rel="noreferrer">wxpython.org</a>):</p> <pre><code>import numpy as np def GetBitmap( self, width=640, height=480, leftColour=(255,128,0), rightColour=(64,0,255) ): ## Create a horizontal gradient array = np.zeros( (height, width, 3),'uint8') # alpha is a one dimensional array with a linear gradient from 0.0 to 1.0 alpha = np.linspace( 0., 1., width ) # This uses alpha to linearly interpolate between leftColour and rightColour colourGradient = np.outer(alpha, leftColour) + np.outer((1.-alpha), rightColour) # NumPy's broadcasting rules will assign colourGradient to every row of the destination array array[:,:,:] = colourGradient image = wx.EmptyImage(width,height) image.SetData( array.tostring()) return image.ConvertToBitmap()# wx.BitmapFromImage(image) </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload