Enter search terms or a module, class or function name.
A custom panel class with gradient background shading with the possibility to add buttons and controls still respecting the gradient background.
With ButtonPanel class you have a panel with gradient colouring on it and with the possibility to place some buttons on it. Using a standard panel with normal Buttons leads to an ugly result: the buttons are placed correctly on the panel - but with grey area around them. Gradient colouring is kept behind the images - this was achieved due to the PNG format and the transparency of the bitmaps.
The image are functioning like a buttons and can be caught in your code using the usual:
The control is generic, and support theming (well, I tested it under Windows with the three defauls themes: grey, blue, silver and the classic look).
ButtonPanel supports 4 alignments: left, right, top, bottom, which have a different meaning and behavior with respect to Toolbar. The easiest thing is to try the demo to understand, but I’ll try to explain how it works.
CASE 1: ButtonPanel has a main caption text.
CASE 2: ButtonPanel has no main caption text.
import wx import wx.lib.agw.buttonpanel as BP class MyFrame(wx.Frame): def __init__(self, parent, id=-1, title="ButtonPanel", pos=wx.DefaultPosition, size=(800, 600), style=wx.DEFAULT_FRAME_STYLE): wx.Frame.__init__(self, parent, id, title, pos, size, style) mainPanel = wx.Panel(self, -1) self.logtext = wx.TextCtrl(mainPanel, -1, "", style=wx.TE_MULTILINE) vSizer = wx.BoxSizer(wx.VERTICAL) mainPanel.SetSizer(vSizer) titleBar = BP.ButtonPanel(mainPanel, -1, "A Simple Test & Demo") btn1 = BP.ButtonInfo(titleBar, wx.NewId(), wx.Bitmap("png4.png", wx.BITMAP_TYPE_PNG)) titleBar.AddButton(btn1) self.Bind(wx.EVT_BUTTON, self.OnButton, btn1) btn2 = BP.ButtonInfo(titleBar, wx.NewId(), wx.Bitmap("png3.png", wx.BITMAP_TYPE_PNG)) titleBar.AddButton(btn2) self.Bind(wx.EVT_BUTTON, self.OnButton, btn2) btn3 = BP.ButtonInfo(titleBar, wx.NewId(), wx.Bitmap("png2.png", wx.BITMAP_TYPE_PNG)) titleBar.AddButton(btn3) self.Bind(wx.EVT_BUTTON, self.OnButton, btn3) btn4 = BP.ButtonInfo(titleBar, wx.NewId(), wx.Bitmap("png1.png", wx.BITMAP_TYPE_PNG)) titleBar.AddButton(btn4) self.Bind(wx.EVT_BUTTON, self.OnButton, btn4) vSizer.Add(titleBar, 0, wx.EXPAND) vSizer.Add((20, 20)) vSizer.Add(self.logtext, 1, wx.EXPAND|wx.ALL, 5) titleBar.DoLayout() vSizer.Layout() def OnButton(self, event): ''' Handler for the ``EVT_BUTTON`` event. ''' obj = event.GetEventObject() # This will print the button label print obj.GetText() # our normal wxApp-derived class, as usual app = wx.App(0) frame = MyFrame(None) app.SetTopWindow(frame) frame.Show() app.MainLoop()
This class supports the following window styles:
|Window Styles||Hex Value||Description|
|BP_DEFAULT_STYLE||0x1||ButtonPanel has a plain solid background.|
|BP_USE_GRADIENT||0x2||ButtonPanel has a gradient shading background.|
This class processes the following events:
|EVT_BUTTON||Process a wxEVT_COMMAND_BUTTON_CLICKED event, when a button is clicked.|
ButtonPanel is distributed under the wxPython license.
Latest Revision: Andrea Gavana @ 17 Aug 2011, 15.00 GMT
Inheritance diagram for module buttonpanel
|BrightenColour||Brighten the input colour by a factor.|
|MakeDisabledBitmap||Creates a disabled-looking bitmap starting from the input one.|
|BoxSizer||Pseudo-class that imitates BoxSizer.|
|BPArt||BPArt is an art provider class which does all of the drawing for ButtonPanel.|
|ButtonInfo||This class holds information about every button that is added to|
|ButtonPanel||A custom panel class with gradient background shading with the possibility to|
|ButtonPanelText||This class is used to hold data about the main caption in ButtonPanel.|
|Control||This class represents a base class for all pseudo controls used in|
|Separator||This class holds all the information to size and draw a separator inside|
|Sizer||This is a mix-in class to add pseudo support to Sizer. Just create|
|StatusBarTimer||Timer used for deleting StatusBar long help after _DELAY seconds.|
Brighten the input colour by a factor.
An instance of Colour, a brightened version of the input colour.